- 查看是否安装了MySQL,因为这些会有冲突
rpm -qa | grep mysql
rpm -qa | grep mariadb
# 卸载
rpm -e --nodeps 软件名称
- 下载安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- 安装MySQL包
yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安装MySQL
yum -y install mysql-community-server
出现这个错误,解决方法:需要禁掉GPG验证检查,执行下面的命令
yum -y install mysql-community-server --nogpgcheck
- 启动MySQL
systemctl start mysqld.service 启动
systemctl status mysqld.service 查看
systemctl stop mysqld.service 停止
启动的时候出现问题
查看日志
从日志信息来看,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
然后再启动,发现成功了
- 查看MySQL运行状态
service mysqld status
ps -ef|grep mysql
- 查看初始密码
grep 'password' /var/log/mysqld.log
- 连接mysql
mysql -u root -p
- 修改密码
# 退出mysql,修改文件加上skip-grant-tables跳过密码
vim /etc/my.cnf
- 重启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
- 远程访问数据库
use mysql;
update user set host = '%' where user = 'root';
grant all privileges on *.* to 'root'@'%' identified by '密码';
flush privileges;
select host,user from user;
修改过程中如果出现:Duplicate entry '%-root' for key 'PRIMARY'
错误,解决办法:删除条目,再重新执行上面代码
DELETE FROM mysql.user WHERE user = 'root' AND host = '%';
FLUSH PRIVILEGES;