CentOS 7 下安装 MySQL 5.7 or 8

本文档详细介绍了如何在CentOS 7环境下安装MySQL 5.7或8.0。首先,需要进行环境准备,包括安装必要的依赖包。接着,通过下载MySQL Yum仓库选择合适的MySQL版本。安装过程包括启用或禁用不同版本的MySQL,然后执行安装命令。在安装完成后,启动MySQL Server并设置开机启动。对于MySQL 5.7及以上版本,安全初始化步骤不再需要。最后,文章还提到了安装后可能出现的问题及解决方案,如普通用户登录权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统环境:CentOS-7-x86_64-Minimal-1804
MySQL官方帮助文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

环境准备:

  • 使用wget下载工具和yum-config-manager命令需要安装yum-utils
$ sudo yum install -y wget yum-utils

MySQL 安装

下载 MySQL Yum 仓库

官网网址:https://dev.mysql.com/downloads/repo/yum/

CentOS 7选择Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package以下是下载链接 (截至2018-12-11最新)

$ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

添加到MySQL Yum 的仓库

$ sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

选择要安装的 MySQL 版本

用以下命令查看MySQL YUM库中的所有版本,并查看其中哪些已启用或禁用

$ sudo yum repolist all | grep mysql
$ sudo yum repolist enabled | grep mysql

默认安装最新的GA系列(GA为Generally Available一般可用版本,稳定版),不需要其他配置。

以下命令禁用 8 系版本并启用 5.7 系版本

$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community

安装MySQL ( Installing MySQ

$ sudo yum install -y mysql-community-server

启动 MySQL Server

  • 启动 MySQL Server:
$ sudo systemctl start mysqld.service
  • 检查MySQL Server的状态:
$ sudo systemctl status mysqld.service
  • 设置开机启动
$ sudo systemctl enable mysqld.service
  • 安装时默认创建了“root”@“localhost”,密码也被随机设置,在日志文件中记录。
    可以下命令查看:
$ grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'
  • 更改root密码:
$ mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码';

注意:MySQL的validate_password插件默认安装。 这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。

MySQL 安全初始化 (仅适用于MySQL 5.6)

安装MySQL 5.7或更高版本的话,不需要运行,因为 Yum 安装程序已经执行了该程序的功能。

$ mysql_secure_installation

New password: 
Re-enter new password: 

是否安装密码检测插件?
Would you like to setup VALIDATE PASSWORD plugin?Press 

是否更改root密码?
Change the password for root ? ((Press y|Y for Yes, any other key for No) : 

是否移除匿名用户呀?
Remove anonymous users? (Press y|Y for Yes, any other key for No) : 

是否禁止root远程登陆呀?
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 

是否删除测试数据库呀?
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 

是否现在就刷新授权表呀?
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 

其他问题:

Ubuntu下,使用sudo安装mysql后,普通用户登录时会出现该问题

$ mysql -uroot -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

原因:
可以查看一下user表,rootpluginauth_socket
正常情况用密码登陆的plugin应该是mysql_native_password

mysql> select user, plugin from mysql.user;
+-----------+-----------------------+
| user      | plugin                |
+-----------+-----------------------+
| root      | auth_socket           |
| mysql.sys | mysql_native_password |
| dev       | mysql_native_password |
+-----------+-----------------------+

解决措施:
只要把auth_socket改成mysql_native_password就行

$ sudo mysql -uroot -p
mysql> USE mysql;
mysql> SELECT user, plugin FROM user;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> SELECT user, plugin FROM user;
mysql> exit;
$ sudo systemctl restart mysqld.service
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值