*本教程将介绍如何在CentOS 7服务器上安装MySQL版本5.7
*CentOS 7已经使用 MariaDB 替代了 MySQL,如直接输入“yum install mysql-server”则安装 MariaDB
开始之前:
1. 更新系统(更新后建议重启机器):
yum -y update
*yum -y update:升级所有包同时也升级软件和系统内核 (推荐)
yum -y upgrade
*yum -y upgrade:只升级所有包,不升级软件和系统内核
2. 检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
3. 卸载MySQL:
rpm -e mysql
*普通删除模式,可能提示有其他依赖文件
rpm -e --nodeps mysql
*强力删除模式,同时删除依赖文件
4. 安装wget(若已有则跳过):
yum install wget
安装MySQL:
*如果你想使用 yum install mysql
在CentOS 7上安装数据库,MariaDB比MySQL更适合,除非你有特殊的需求
MySQL vs. MariaDB,“MariaDB will generally work seamlessly in place of MySQL”
1. rpm手动安装
安装依赖
yum -y install numactl-libs
下载安装包 ( *CDN已失效 )
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.19-1.el7.x86_64.rpm
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.19-1.el7.x86_64.rpm
安装
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --nosignature
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --nosignature
2. yum install mysql
正如前面提到的安装MySQL的yum命令实际上安装的是MariaDB。若要安装MySQL我们需要访问为MySQL提供包的MySQL社区Yum Repository。
1. 在页面中找到对应版本的下载地址,并记下对应版本的MD5值。
wget https://dev.mysql.com/get/mysql57-community-release-xxxx-xx.noarch.rpm
*mysql57-community-release-xxxx-xx.noarch.rpm 为版本文件名,注意修改
2. 对比MD5值验证完整性。
md5sum mysql57-community-release-xxxx-xx.noarch.rpm
*mysql57-community-release-xxxx-xx.noarch.rpm 为版本文件名,注意修改
3. 确认MD5无误后安装该YUM源RPM安装包:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
*增加两个新的MySQL yum存储库
4. 安装MySQL :
yum install mysql-server
*提示是否接受GPG密钥,输入“y”即可继续安装
启动MySQL:
启动
systemctl start mysqld
查看
systemctl status mysqld
*如果MySQL已经成功启动,输出应该显示Active: active (running)。
*安装 MySQL时,MySQL会自动启动。您可以更改该默认行为 systemctl disable mysqld
。
开机自动启动MySQL服务
systemctl enable mysqld
取消开机自动启动MySQL服务
systemctl disable mysqld
*在安装过程中,MySQL会为根用户生成一个临时密码(mysqld.log)。使用此命令找到它:
grep 'password' /var/log/mysqld.log
配置MySQL(rpm手动安装):
登录后修改密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
*此处可能提示密码不符合要求,输入下列语句后重新修改密码即可 :
set global validate_password_policy=0;
强制用户使用SSL:
alter user 'test'@'%' REQUIRE SSL;
设置开机自启:
chkconfig mysqld on
修改MySQL配置:
vim /etc/my.cnf
[client]
port=3306
default-character-set=utf8mb4
[mysqld]
port=3306
character-set-client-handshake=0
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
测试MySQL:
mysqladmin -u root -p version
重置MySQL根密码:
如果你忘记了你的root密码,它可以重置。
1. 停止当前的MySQL服务器实例,然后用一个选项重新启动它,以不要求输入密码。
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
2. 用MySQL根帐户重新连接到MySQL服务器。
mysql -u root
3. 使用以下命令重置root的密码。
use mysql;
update user SET PASSWORD=PASSWORD("新密码") WHERE USER='root';
flush privileges;
exit
4. 然后重新启动MySQL。
systemctl start mysqld
新建名为scott的数据库和名为scott密码为tiger的用户并使scott用户拥有scott数据库的所有权限
create database scott;
create user 'scott'@'%' IDENTIFIED BY 'tiger';
flush privileges;
grant all PRIVILEGES on scott.* to scott@'%' identified by 'tiger';
flush privileges;
exit;
参考文章: