- 先下载 mysql源安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
- 安装mysql源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
- 检查源是否安装成功
sudo yum repolist enabled | grep "mysql.-community."
- 安装 MySQL(这个过程可能有点久,请耐心等待)
sudo yum -y install mysql-community-server
- 启动 MySQL
sudo systemctl start mysqld
- 检查 MySQL 的启动状态
sudo systemctl status mysqld
- 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码
- 编辑etc目录下的my.cnf文件
- 按a 或者 i进入编辑状态
- 在文档内搜索mysqld定位到[mysqld]文本段,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
按Esc,:wq保存退出
接下来我们需要重启MySQL:
service mysqld restart
- 输入:mysql进入到数据库
- 设置密码
update mysql.user set authentication_string=password('你的密码') where user='root' ;
- 刷新
flush privileges;
- 退出mysql(Ctrl+z)
- 编辑 /etc/my.cnf,把skip-grant-tables去掉,保存退出
- 重启数据库
systemctl restart mysqld.service
- 再次登录(输入你修改后的密码),终于解决问题!
二、在本地远程连接mysql
-
在windows-cmd窗口ping linux IP地址。出现如下说明可以
- 在linux,mysql窗口查看mysql的端口
show variables like '%port%';(如果没有,请跳过这个步骤)
- 这个其实与validate_password_policy的值有关。
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
修改validate_password_policy参数的值
set global validate_password_policy=0;
validate_password_length(密码长度)参数默认为8,我们修改为1
set global validate_password_length=1;
- 完成之后再次执行修改密码语句即可成功
alter user 'root'@'localhost' identified by '123456';
- 再次show variables like '%port%';成功查看
- 你想root使用123456从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
- 如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON . TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
- 连接本地的mysql
- 查看3306端口是否开启,如果没有开启
firewall-cmd --zone=public --query-port=3306/tcp
- 打开防火墙3306远程端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
*再次连接本地的mysql
配置mysql开机启动
vi /etc/rc.local
在文件中添加 service mysqld start即可
- 重启虚拟机
reboot
- 查看3306端口是否开启,如果没有开启
firewall-cmd --zone=public --query-port=3306/tcp
- mysql开机启动设置成功
防火墙的一些操作命令:
*查看防火墙端口开放的情况
firewall-cmd --zone=public --list-ports
- 防火墙随系统开启启动 :
systemctl enable firewalld.service
- 执行启动防火墙命令:
service firewalld start
- 查看防火墙状态:
systemctl status firewalld.service
- 执行开机禁用防火墙自启命令 :
systemctl disable firewalld.service