虚拟机安装MySQL教程
1.CentOS7 环境准备
删除centos7自带的数据库mariadb
先看一下系统中是否存在mariadb,用 rpm -qa | grep mariadb
命令查看,如存在则需要进行卸载 rpm -e --nodeps mariadb-libs。
2.修改配置文件跳过密码登录
- 闭mysql服务:
service mysqld stop
- 打开配置文件:
vim /etc/my.cnf
- 在配置文件中添加
skip-grant-tables
这句话就可以空密码登录mysql - 开启mysql服务:
service mysqld start
3.设置root用户的密码
- 登录:
mysql -u root -p
出现输入密码提示时直接回车
mysql> use mysql;
- 设置mysql密码:
mysql> set password for
- root@localhost = password(‘123456’);
如果提示下面的错误:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
#更新权限
Query OK, 0 rows affected (0.10 sec)
mysql> SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘newpass’);
【此处失败的话就用以下两句命令mysql>update user set authentication_string = password(‘新密码’),password_last_changed=now() where user=‘root’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
】mysql>flush privileges;
#更新权限mysql>quit;
#退出service mysqld stop
# 停止mysql服务, 恢复mysql配置vim /etc/my.cnf
#修改配置文件,注释之前添加的代码service mysqld start
# 启动mysql服务mysql -u root -p
# 输入新密码登录- 设置mysql开机自启:
systemctl enable mysqld
(退出mysql进行设置)
4.- 连接navicat
- 1.设置root用户连接的ip的权限
mysql>flush privileges;
#更新权限- 2.设置root用户可以在任意ip(% 通配符),或者指定ip下进行登陆
mysql> SET PASSWORD FOR ‘root’@’%’ = PASSWORD(‘123456’);
- 3.这中间可能还会报一些错,可能是linux防火墙未开放相应的端口,可以使用以下命令开启:
[root@localhost logs]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
- 重新载入一下
[root@localhost logs]#firewall-cmd --reload
- 常见问题:
You must reset your password using ALTER USER statement before executing this statement
(在执行此语句之前,必须使用ALTER USER语句重置密码)
Your password does not satisfy the current policy requirements
(您的密码不满足当前的策略要求)
SET PASSWORD = PASSWORD(‘new password’); ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES;