CentOS 7 系统安装 MySQL 8 及常见注意事项

0. 环境准备

安装之前先检测系统是否已经存在 MySQL:

rpm -qa | grep mysql

如果存在,将其删除:

rpm -e mysql  // 普通删除模式
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

1. 配置安装源

1.1 官方源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

1.2 镜像源

参考清华大学镜像源

新建 /etc/yum.repos.d/mysql-community.repo,内容如下:

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-5.6-community]
name=MySQL 5.6 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.6-community-el7-$basearch/
enabled=0
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-8.0-community]
name=MySQL 8.0 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

PS:如果使用其他镜像源,则需要注意以下事项:

  1. http://{your_mirror}/yum/mysql-8.0-community-el-7-x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

检查 baseurl 中的地址路径与镜像服务器的文件路径是否一致。尝试将 url 中的 mysql-8.0-community-el-7-x86_64 更改为 mysql-8.0-community/el/7/x86_64(具体格式以所用镜像服务器的实际文件路径为准)。

  1. 如果系统在内网,或者由于网络限制无法进行 gpgkey 验证,则可以将 RPM-GPG-KEY-mysql 文件下载到本地,然后放到 /etc/pki/rpm-gpg/ 目录下,修改 gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysqlfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

2. MySQL 安装

yum update
yum install mysql-server

如果此步骤报错,请返回上一步看一下注意事项。

3. MySQL 配置

3.1 配置 MySQL 数据文件夹用户/用户组

chown mysql:mysql -R /var/lib/mysql

3.2 初始化 MySQL

mysqld --initialize

初始化完成后,会在 MySQL error log(log 文件位置在 /etc/my.cnf 配置文件中找 log-error 对应的目录) 中记录 root 账户的初始化密码。

2020-07-09T11:04:09.799833Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 64906
2020-07-09T11:04:12.167519Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: yildrjgSa9!p
...

如果想初始化无密码的 root 账户,则执行:

mysqld --initialize-insecure 

3.3 MySQL 运行管理

  • 启动 MySQL 服务
systemctl start mysqld
  • 查看 MySQL 服务状态
systemctl status mysqld

注意事项:

  1. 默认情况下,MySQL 服务需要使用 mysql 账户启动,如果想要使用 root 账户启动该服务,则需要在启动命令后面加上 --user=mysql:
# /usr/sbin/mysqld --user=mysql

修改 /etc/my.cnf 文件,在末尾新增一行 user=mysql,则可在系统启动时自动以 mysql 账户运行 MySQL 服务。

[mysqld]
user=mysql
  1. 如果无法正常启动服务,查看 /var/log/mysqld.log 中的错误提示信息,比如:
2020-07-09T11:04:24.189000Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 65067
2020-07-09T11:04:24.201278Z 1 [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable
2020-07-09T11:04:24.201366Z 1 [ERROR] [MY-012278] [InnoDB] The innodb_system data file 'ibdata1' must be writable
2020-07-09T11:04:24.201425Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2020-07-09T11:04:24.201580Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-07-09T11:04:24.201656Z 0 [ERROR] [MY-010119] [Server] Aborting

错误信息显示无法初始化数据文件夹, ibdata1 不可写,此时需要检查一下数据文件夹的用户组和权限,然后重新执行:

chown mysql:mysql /var/lib/mysql

4. MySQL 账户设置

完成以上步骤后,还需要通过命令行重新设置 root 账户的密码。

[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
...

ROOT 密码参考 3.2 初始化 MYSQL

如果使用 --initialize-insecure 初始化,则执行以下命令:

mysql -u root --skip-password

连接成功后,修改 root 账户的密码,否则无法操作数据库:

ALTER USER 'root'@'localhost' IDENTIFIED BY '{your_password}';

至此,MySQL 服务已经可以正常使用。

参考资料

  • https://www.runoob.com/mysql/mysql-install.html
  • https://blog.csdn.net/king_1421484363/article/details/73293411
  • https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
  • https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值