Centos7.1.1503 安装MySQL8.0.19

  • 一.安装检查
  • 1.1检查mariadb
  • 1.2 删除mariadb
  • 1.3 检查MySQL
  • 1.4 删除MySQL
  • 1.5 删除MySQL配置文件
  • 1.5 删除文件
  • 二.MySQL安装
  • 2.1 下载MySQL rpm
  • 2.2 安装 rpm
  • 2.3 yum 安装mysql服务
  • 2.4 MySQL初始化
  • 2.5 启动服务
  • 2.6 查看服务状态
  • 2.7 查看MySQL安装临时密码
  • 2.8 登录root账号修改初始密码,复制上面的密码登录
  • 2.9 配置远程访问
  • 2.10 新建测试账号
  • 2.11 修改端口(可选)
  • 2.12 修改mysql的数据、日志存放路径
  • 2.13 防火墙配置将3306端口开放
  • 三.常见问题
  • 3.1 常见问题


一.安装检查

1.1检查mariadb

rpm -qa | grep mariadb

centos9 好久_mysql

1.2 删除mariadb

yum -y remove mariadb*

centos9 好久_初始化_02

1.3 检查MySQL

rpm -qa | grep mysql

centos9 好久_初始化_03

1.4 删除MySQL

yum -y remove mysql*

1.5 删除MySQL配置文件

rm -rf /etc/my.cnf

1.5 删除文件

rm -rf /var/lib/mysql

二.MySQL安装

2.1 下载MySQL rpm

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

centos9 好久_centos9 好久_04

2.2 安装 rpm

rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

centos9 好久_mysql_05

2.3 yum 安装mysql服务

yum install -y mysql-community-server

centos9 好久_MySQL_06


centos9 好久_centos9 好久_07

2.4 MySQL初始化

注意事项 安装完毕之后执行如下初始化语句 在初始化时,设置 lower-case-table-names

/*配置文件修改 /etc/my.cnf */
[mysqld]
lower_case_table_names        = 1

/*执行初始化 */
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

否则会报如下错误

Different lower_case_table_names settings for server ('0') and data dictionary ('1')

centos9 好久_MySQL_08

2.5 启动服务

systemctl start mysqld.service

如果报如下错误

[InnoDB] os_file_get_status() failed on './ibdata1'. Can't determine file permissions

依次执行下面步骤

/*执行初始化 */
cat /etc/my.cnf
pid-file=/var/run/mysqld/mysqld.pid
/*查看该目录是否存在。如没有,则创建,并修改属主属组。 */

ll /var/run/mysqld/
#不存在
mkdir -p /var/run/mysqld/
chown -R mysql:mysql /var/run/mysqld
/*启动。 */
systemctl status mysqld.service
/*关闭selinux 并重启。 */

setenforce 0
systemctl status mysqld.service
/*查看状态 */
systemctl status mysqld.service

2.6 查看服务状态

systemctl status mysqld.service

centos9 好久_centos9 好久_09

2.7 查看MySQL安装临时密码

grep 'temporary password' /var/log/mysqld.log

centos9 好久_mysql_10

2.8 登录root账号修改初始密码,复制上面的密码登录

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED  WITH mysql_native_password BY 'root';

centos9 好久_centos9 好久_11

2.9 配置远程访问

/*切换数据库*/
use mysql;
select user,host,plugin,authentication_string from mysql.user;
select user,host,plugin from mysql.user;

/*修改root的权限并刷新权限*/
update mysql.user set host='%' where user='root';
flush privileges;

centos9 好久_centos9 好久_12

2.10 新建测试账号

create user 'test'@'%' identified by 'test';

/*给test用户授予testdb数据库的所有权限(可远程登陆)*/
grant all privileges on testdb.* to 'test'@'%';
flush privileges;
/*给test用户授予testdb数据库的insert,delete,update权限(可远程登陆)*/
grant select on testdb.* to 'test'@'%';
flush privileges;
/*查看用户的权限*/
show grants for 'test'@'%';

centos9 好久_初始化_13

2.11 修改端口(可选)

vi /etc/my.cnf

/* 默认配置不含port行需自行添加,按esc退出INSERT模式 :wq 保存*/
port=6666

/* 重启mysql并查看端口状态 注意:如果是云服务器(如阿里云),一定要检查安全组是否开启相应的端口,不然客户端连不上*/

systemctl restart mysqld
netstat -nlpt

2.12 修改mysql的数据、日志存放路径

/* 先停止msyql*/
systemctl stop mysqld
/* 先创建好要存储的位置*/

mkdir -p /data/mysql
cd /data/mysql

/*把文件移到/data/mysql/文件夹下,cp -a参数是权限也一起复制,然后删除原文件夹*/
cp -a /var/lib/mysql /data/
rm -rf /var/lib/mysql

/*修改软连接*/
ln -s /data/mysql /var/lib/
/*查看软连接*/


ls -la /var/lib/mysql
/*修改my.cnf配置文件*/
datadir=/data/mysql
socket=/data/mysql/mysql.sock
/* 启动msyql*/
systemctl start mysqld

/* 登录mysql,查看数据文件*/

mysql -u root -p
show global variables like "%datadir%";

/* 查看安装路径*/
whereis mysql
/* 查看版本*/
mysql -V

2.13 防火墙配置将3306端口开放

/* 配置将3306端口开放 --permanent永久生效,没有此参数重启后失效*/
firewall-cmd --zone=public --add-port=3306/tcp --permanent

/* 重新载入*/
firewall-cmd --reload



/* 查看*/
firewall-cmd --zone=public --query-port=3306/tcp

/* 查看安装路径*/
vi /etc/sysconfig/iptables
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

三.常见问题

3.1 常见问题

  • 如果客户端连接报错"Authentication plugin ‘caching_sha2_password’ cannot be
    loaded",是以为mysql 8的加密方式改了。有两种选择 1、升级客户端 2、把加密方式改为传统的方式
    推荐用新的加密方式(一般升级客户端就可以了),老项目代码的话可能有老的jar包等不支持新加密,下面是改为传统加密方式
ALTER mysql.USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';