一、修改密码(转载自:点击打开链接)
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:# mysqladmin -u用户名 -p旧密码 password 新密码
例子:# mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
linux:
- 第一步:打开mysql5.7的配置文件my.cnf,并在里面增加一行:skip-grant-tables 保存并退出(:wq)
[root@iz09a32x1sghz3z ~]# vi /etc/my.cnf
- 第二步:重启mysql
[root@iz09a32x1sghz3z ~]# service mysqld restart
- 第三步:登录mysql并且修改密码
用root账号登录: [root@iz09a32x1sghz3z ~]# mysql -u root
使用mysql中的mysql数据库: mysql> use mysql;
修改密码: update user set authentication_string = password("Szfore_68638") where user="root" ;
刷新数据库: flush privileges;
退出: quit;
注意:mysql5.7的user表中的password字段已经改成了authentication_string 字段了。
这时候,需要输入的命令是update user set authentication_string = password("Szfore_68638") where user="root" ;
- 第四步:打开mysql5.7的配置文件my.cnf,把刚增加这行:skip-grant-tables 删除掉 保存并退出(:wq)
- 第五步:重新启动mysql,即可用修改好的密码登录了。
[root@iz09a32x1sghz3z ~]# service mysqld restart
二、开启远程访问权限
1、mysql开启权限
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root密码' with grant option;
mysql> flush privileges;
然后重启mysql服务;
2、系统开启3306端口
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
执行完之后就开启了3306端口,但只是暂时开启,重启系统后就会失效,
如果需要重启后也生效,则需要执行# service iptables save 或者# /etc/init.d/iptables save
另外, vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT