1. 查看是否安装了MySQL,因为这些会有冲突
rpm -qa | grep mysql
rpm -qa | grep mariadb	
# 卸载
rpm -e --nodeps  软件名称
  1. 下载安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  1. 安装MySQL包
yum -y install mysql57-community-release-el7-10.noarch.rpm
  1. 安装MySQL
yum -y install mysql-community-server

Linux下安装MySQL。不啰嗦,一步到位_mysql

出现这个错误,解决方法:需要禁掉GPG验证检查,执行下面的命令

yum -y install mysql-community-server --nogpgcheck
  1. 启动MySQL
systemctl start mysqld.service 启动
systemctl status mysqld.service 查看
systemctl stop mysqld.service 停止

启动的时候出现问题

Linux下安装MySQL。不啰嗦,一步到位_MySQL_02

查看日志

从日志信息来看,MySQL 服务未能启动,主要是因为数据目录中已经存在文件,并且使用了 --initialize 选项。--initialize 选项通常用于初始化一个全新的数据目录。如果数据目录中已经有文件存在,MySQL 会中止初始化过程,以避免数据丢失。

解决办法:清空数据目录

sudo systemctl stop mysqld
sudo rm -rf /var/lib/mysql/*
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
sudo systemctl start mysqld

然后再启动,发现成功了

  1. 查看MySQL运行状态
service mysqld status
ps -ef|grep mysql
  1. 查看初始密码
grep 'password' /var/log/mysqld.log

Linux下安装MySQL。不啰嗦,一步到位_数据目录_03

  1. 连接mysql
mysql -u root -p
  1. 修改密码

Linux下安装MySQL。不啰嗦,一步到位_mysql_04


# 退出mysql,修改文件加上skip-grant-tables跳过密码
vim /etc/my.cnf
  1. 重启mysql
service mysqld stop
service mysqld start

再次连接数据库,输入任意密码都能进入

切换到mysql数据库,修改密码

use mysql;
update user set authentication_string=password('密码') where user='root';

修改成功

再将刚刚修改的文件改回来

exit;
vim /etc/my.cnf

重启

service mysqld start
  1. 远程访问数据库
use mysql;
update user set host = '%' where user = 'root';
grant all privileges on *.* to 'root'@'%' identified by '密码';
flush privileges;
select host,user from user;

Linux下安装MySQL。不啰嗦,一步到位_数据目录_05

修改过程中如果出现:Duplicate entry '%-root' for key 'PRIMARY'错误,解决办法:删除条目,再重新执行上面代码

DELETE FROM mysql.user WHERE user = 'root' AND host = '%';
FLUSH PRIVILEGES;