Centos7 部署MySQL8.0.30
一、下载MySQL
官网:https://dev.mysql.com/downloads/mysql/
二、安装
2.1、将mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz文件上传到服务器中
如图:
解压命令:
xz -d mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
# 将tar文件解压到/usr/local/目录下
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar -C /usr/local
cd /usr/local/
# 修改MySQL文件名
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql-8.0.30
# 创建数据存放目录
mkdir /usr/local/mysql-8.0.30/data
2.2、检查libaio是否有安装
yum search libaio
图中是有安装过了
安装命令:
yum install libaio
如果没有安装libaio,在初始化数据库时会报如下错误:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
2.3、配置环境变量
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql-8.0.30/bin
export PATH=$PATH:$MYSQL_HOME
配置好后保存退出,并重新加载配置
source /etc/profile
2.4、创建用户、用户组
# 创建用户
groupadd mysql
# 创建用户组
useradd -g mysql mysql
# 授权
chown -R mysql.mysql /usr/local/mysql-8.0.30
2.5、初始化数据库
# 不忽略表名大小写
mysqld --user=mysql --basedir=/usr/local/mysql-8.0.30 --datadir=/usr/local/mysql-8.0.30/data/ --initialize
# 忽略表名大小写
mysqld --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql-8.0.30 --datadir=/usr/local/mysql-8.0.30/data/ --initialize
初始化后会有一个默认密码,找到root@localhost:,后面就是初始密码,将初始密码复制出来
注意:在初始化数据库时需区分忽略大小写问题,如果初始化时没有设置忽略大小写,后面在配置文件配置后,重启MySQL会报错,如下:
2.6、修改/etc/my.cnf配置文件
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8mb4
[mysqld]
basedir=/usr/local/mysql-8.0.30
datadir=/usr/local/mysql-8.0.30/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8mb4
# explicit_defaults_for_timestamp=true
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysqld_safe]
log-error=/usr/local/mysql-8.0.30/data/error.log
pid-file=/usr/local/mysql-8.0.30/data/mysqld.pid
tmpdir=/tmp
授权文件my.cnf
cd /etc/
chown mysql:mysql my.cnf
chown mysql my.cnf
chmod 755 my.cnf
2.7、设置开机自启动
cp /usr/local/mysql-8.0.30/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
2.8、启动MySQL
# 启动
service start mysqld
# 停止
service stop mysqld
# 查看状态
service status mysqld
2.9、修改密码、密码插件
进入MySQL,输入初始密码进入mysql
mysql -u root -p
修改初始密码:
alter user 'root'@'localhost' identified by '123456';
修改密码插件
update user set authentication_string='' where user='root';
flush privileges;
update user set plugin='mysql_native_password' where user='root';
flush privileges;
# 允许除localhost外访问
update user set host='%' where user='root' and host='localhost';
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;