Linux安装MySQL5.7
一.检查系统
cat /etc/redhat-release
是否安装mysql
systemctl status mysqld.service
二.安装MySQL
1.下载MySQL官方的Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2. 安装Yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3. 在线安装MySQL
yum -y install mysql-community-server
报错
解决办法
: 先执行 yum module disable mysql
,然后再执行 yum -y install mysql-community-server
4、卸载Yum Repository
由于每次 yum 操作都会自动更新,需要把这个卸载掉
yum -y remove mysql57-community-release-el7-10.noarch
三.配置MySQL
1. 查看MySQL状态
systemctl status mysqld.service
2. 启动MySQL
systemctl start mysqld.service
3. 登录MySQL
此时MySQL已经开始正常运行,不过想要登录MySQL还得先找出此时root用户的密码
grep "password" /var/log/mysqld.log
临时密码是 Ej>!tp029FGv
修改root 密码
mysql -u root –p
必须修改默认密码之后才能操作数据库,密码设置必须包含大小写字母、数字和特殊字符,不然修改密码失败
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL%57'; // MySQL%57处填新密码
四.开启MySQL远程访问
执行以下命令开启远程访问限制(注意:下面命令开启的是%代表所有用户,如要开启某一个IP,用IP代替%
grant all privileges on *.* to 'root'@'%' identified by 'MySQL%57' with grant option;
执行刷新命令
flush privileges;
退出
exit
四.在防火墙中添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
五.修改配置文件
登录MySQL,
mysql -u root -p // 输入自己设置的密码
输入status,发现服务器的字符编码是latin1
需要将字符编码修改为utf8
修改配置文件my.cnf
查找my.cnf所在目录
记得先退出mysql exit
find / -name my.cnf
使用vim打开my.conf文件,新增以下四行代码
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
:wq保存
保存my.cnf后,重启MySQL
登录MySQL,查看status,可以看到字符集编码已经成功修改为utf8
六.远程测试
阿里云ECS服务器需要添加安全组规则,开启3306端口才可以远程连接MySQL
在本地Windows下远程连接MySQL,连接成功
使用Navicat测试,连接成功
报错:
1045错误
本地Navicat连接远程服务器的数据库出现1045-Access denied for user ‘root’@‘localhost’(using password:YES) 问题。并非一定是密码错误问题,
也可能是数据库MySQL表的用户权限问题。记录一下踩坑过程,以后方便配置。
解决:
1.mysql -u root -p // 登录服务器
2.update user set host = '%' where user ='root'; // 允许远程机器连接
又出现一个错误: ERROR 1046 (3D000): No database selected //意思是说没有选种数据库.
3.create database; // 首先要建立数据库,在将表放入数据库中:
// 修改权限
4.GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;//****是你数据库的
5.flush privileges; //立即刷新权限