MySQL8安装
1.部署前环境配置
#关闭操作系统防火墙
systemctl stop firewalld && systemctl disable firewalld
#关闭操作系统selinux,修改/etc/selinux/config中SELINUX=disabled
sed -ri "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce=0 #只对当前登录有效
#修改操作系统打开文件数,在/etc/security/limits.conf文件最后添加
* soft nofile 204800
* hard nofile 204800
* soft nproc 204800
* hard nproc 204800
#重启机器生效
2.安装依赖
yum -y install perl net-tools
下载对应安装包并进行安装
此次安装在CentOS7.6上,mysql版本8.0.19
#**卸载已安装的mariadb的lib包**
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
#**安装mysql相关包**
rpm -ivh mysql-community-libs-8.0.19-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-libs-compat-8.0.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.19-1.el7.x86_64.rpm
更改存储数据等目录
#创建目录
mkdir -p /data/mysql
mkdir -p /data/log
#修改mysql配置文件/etc/my.cnf
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/log/mysqld.log
pid-file=/data/mysql/mysqld.pid
default_authentication_plugin=mysql_native_password #默认的身份认证插件
[client]
socket=/data/mysql/mysql.sock
#修改目录权限:
chown –R mysql:mysql /data
MySQL安装及配置
注意,如果要表不区分大小写,需要在初始化之前在my.cnf中写好,初始化之后将不可更改
# mysql初始化
lower_case_table_names =1
mysqld --initialize --user=mysql
# mysql设置先忽略登录密码,在my.cnf中先添加skip-grant-tables
#启动mysql:
service mysqld start
# 密码置空
mysql -u root
mysql> use mysql;
mysql> update user set authentication_string='' where user='root';
# mysql撤销忽略登录密码:在my.cnf中去掉skip-grant-tables
# 重启mysql并设置密码
service mysqld restart
mysql -u root
mysql>ALTER user 'root'@'localhost' IDENTIFIED BY 'xxxxx';
#禁止开机自启动
systemctl disable mysqld
# mysql创建用户
# mysql8.0不再支持用grant的方式创建用户,跟oracle越来越像了
mysql>create user root@'%' identified by 'xxxx';
mysql>grant all on *.* to root@'%' with grant option;
mysql>flush privileges;
常见问题
mysql8修改了默认的密码编码格式,导致部分客户端连接异常,可以执行如下修改解决
mysql>ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘xxxx’;