centOS系统上mysql8.0安装

安装软件-mysql

1、安装前的准备

(1)、卸载残留的资源

a、mariadb的处理

一般centOS默认会安装mariadb数据库。

需要进行查询:rpm -qa|grep mariadb

卸载操作:rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

注意:--nodeps 在安装和卸载的时候,不考虑其依赖的关系软件

b、mysql的处理(未安装mysql则跳过)

查看这已经安装的mysql的其他依赖:rpm -qa|grep -i mysql

mysql的删除:yum remove mysql-community-server-5.6.36-2.el7.x86_64(这里填自己的数据库)

卸载依赖:yum remove mysql-libs

yum remove mysql-server

yum remove perl-DBD-MySQL

yum remove mysql

注意:如果没有依赖以上命令将会出现

(2)、建议关闭SElinux

该程序配置复杂,与很多程序产生冲突,本身是linux2.6以上版本捆绑的一个安全模块

a、编辑config配置文件:vi /etc/selinux/config

b、设置SELINUX=disabled

 

c、重启系统,使的配置生效

(3)替换yum源

a、安装wget下载命令:yum -y install wget

b、更新缓存:yum clean all

yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除

c、缓存服务器的包信息:yum makecache

yum makecache就是把服务器的包信息下载到本地电脑缓存起来,配合yum -C search xxx使用。不用上网检索就能查找软件信息。

(4)(不建议)下载mysql的rpm安装包并在线安装

Yum用来安装软件和卸载软件的,将国外的下载连接替换为国内的下载连接,方便下载

替换yum源为网易的连接:curl -o /etc/yum.repos.d/CentOS-Base.repo   mirrors.163.com/.help/CentOS7 -Base-163.repo(如果在线安装,改变连接,之后yum命令会失效)

安装过程中遇到无法使用yum命令,可以重新安装yum源:yum localinstall  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

这里是清理原yum的配置、删除yum.repos.d目录下所有文件

rm -f /etc/yum.repos.d/* 

然后重新下载阿里的:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存:

yum clean all

yum makecache

再次执行

yum localinstall  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

在线安装

yum install mysql-community-server -y

-y表示安装过程中无需确认,直接进入安装环节 

2、本地安装

下载mysql压缩包文件,并且上传到/root/mysql目录

官网网址:https://downloads.mysql.com/archives/community/,下载并保存到本地。如上述文件目录操作,进行压缩包的移动/root/mysql 目录。

 (1)、解压:tar xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

 

(2)、安装依赖的第三方程序:yum install perl -y

Perl像C一样强大,像awk、sed等脚本描述语言一样方便,被Perl语言爱好者称之为"一种拥有各种语言功能的梦幻脚本语言"、"Unix 中的王牌工具"

yum install net-tools -y

net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2

作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯

(3)、依次安装rpm包

rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm

安装界面都大同小异:

(4)、修改mysql安装文件的权限

a、修改/var/lib/mysql目录访问权限,mysql进程需要向目录中写入数据,因此需要设置最高的访问权限: chmod -R 777 /var/lib/mysql

b、初始化数据库目录:mysqld --initialize

初始化数据库目录,root账户会生成一个随机的临时密码。

c、给初始化后生成的所有文件赋予访问权限:chmod -R 777 /var/lib/mysql/*

(5)、启动数据库

a、本地安装数据库:service mysqld start 

b、查看root账号临时登录密码:grep ‘temporary password’ /var/log/mysqld.log

c、登录mysql:mysql -uroot -pFnX-a#=01gJ9

注意:如果密码中有不可识别的字符,将密码用单引号括起来 'FnX-a#=01gJ9'

d、进入数据库,更改密码为root:alter user user() identified by "root";

这里在登录的时候一定要加  -u这个参数mysql -uroot -pFnX-a#=01gJ9,不然会出现以下错误

e、设置远程登录,%代表任何ip地址都可远程登录

使用数据库:use mysql;

可以查看数据库中表,其中user是默认创建的表:show tables;

 

给用户设置权限,让所有ip都能访问:update user set host='%' where user='root';

注意:这里给root引号要是英文的

f、刷新:flush privileges;

g、退出mysql,配置/etc/my.cnf内容,添加

[mysqld]

character_set_server=utf8

bind-address=0.0.0.0

h、重启mysql服务:service mysqld restart

 

(6)、防火墙配置

a、防火墙开放3306端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

b、重新加载防火墙:firewall-cmd --reload

c、打开数据库连接工具navicat或者是sqlyog之类,连接linux中3306端口下的mysql

如果出现连接错误,进入mysql执行界面输入以下内容

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

Query OK, 0 rows affected (0.07 sec)

3、测试链接数据库

(1)、安装navicat软件

(2)、添加连接

(3)、连接成功:

关闭防火墙命令:

systemctl stop firewalld 关闭网络防火墙
systemctl disable firewalld 关闭开机自启动(永久关闭) 

可能遇到的问题:

  放通所有地址的时候,出现以下错误

mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

  查询数据库中user已经存在,直接刷新权限就好,不用再更新

mysql> select host from user where user = 'root';
+-----------+
| host      |
+-----------+
| %         |
| localhost |
+-----------+
2 rows in set (0.11 sec)

刷新:flush privileges;
原文地址:https://www.cnblogs.com/HelloM/p/13526508.html