在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。
1. 检查linux中是否有安装mysql
```
// i. 检查rpm 方式安装,如若存在就删除软件包
rpm -qa|grep mysql
rpm -e rpm包名称
//ii. 检查yum 方式安装 ,如若存在就删除软件包
yum list installed |grep mysql
yum remove mysql*
// iii. 检查是否有直接去网站下载绿色包解压的, 找文件安装的地址
whereis mysql
```
2. 下载并安装MySQL官方的 Yum Repository
```
// 下载yum库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
```
3. 查看是否安装成功
```
// 启动mysql
systemctl start mysqld.service
// 查看mysql运行状态
systemctl status mysqld.service
// 查看mysql 安装版本
mysql -V
```
4. 重置密码
I . mysql5.7初始化时是有个初始密码的,一般密码是放在/var/log/mysqld.log (yum方式安装才会在这个目录)。
```
vim /var/log/mysqld.log
根据关键字定位
/ password
如果找不到 类似 ' A temporary password is generated for root@localhost : 密码 ' 这些字样,那么就采用第二种方法来重置.
```
如果找到了,那么 直接使用命令以下命令修改密码即可
```
mysqladmin password -uroot -p
Enter password: 输入初始口令
New password: 输入新口令
Confirm new password: 确认新口令
```
ps : 如果出现: mysqladmin: unable to change password; error: ‘Your password does not satisfy the current policy requirements’ 这样的提示,是因为口令安全强度不够;如果要禁用强度检查,则编辑 /etc/my.cnf, 去除 validate-password=off 的注释标志,使用service mysqld restart重启服务后,重新执行修改密码;
II . 第二种方法是通过先设置mysql免密码登录模式,登录进mysql后再重置密码。
```
// 停止mysql服务
systemctl stop mysqld.service
// 设置mysql无密码登录
vim /etc/my.cnf
:$
最后一行加入 skip-grant-tables
:wq!
// 重启服务
systemctl start mysqld.service
// 登录mysql
mysql -u root -p 直接回车
// sql修改root用户的密码 并刷新权限
USE mysql;
update mysql.user set authentication_string=password('root') where user='root' ;
flush privileges;
// 退出
exit;
//注释掉之前无密码登录的配置
vim /etc/my.cnf
## skip-grant-tables
// 重启服务并登录验证新密码
systemctl restart mysqld.service
```
5. 开放3306端口 允许外部远程访问
```
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
```
ps: 数据库的手工启动命令是: service mysqld start; 停止命令是service mysqld stop;