Linux服务器常见问题及解决方案

目录

一、忘记MySQL的root用户密码的解决方法

二、配置mysql允许指定IP远程访问


一、忘记MySQL的root用户密码的解决方法

1. 停止运行的MySQL进程,后配置跳过授权表启动MySQL

service mysqld stop

2. 打开一个Terminal,在  vim /etc/my.cnf 下添加:

[mysqld]
# 添加下面的语句
skip-grant-tables

3. 重启mysql服务:

service mysqld restart

4. 打开一个Terminal, 打开安全模式的mysql, 连接的时候不需要密码:

mysql -u root -p

--  MySQL5.7版本
mysql> UPDATE `mysql`.`user` SET `authentication_string`=PASSWORD('123456') WHERE `User`='root' AND `Host`='localhost';
--  MySQL5.6以前部分版本
mysql> UPDATE `mysql`.`user` SET `Password`=PASSWORD('123456') WHERE `User`='root' AND `Host`='localhost';

5.刷新权限

mysql> flush privileges;

6.删除 etc/my.cnf 中的 skip-grant-tables

二、配置mysql允许指定IP远程访问

1.登录远程数据库,查看用户表

# 进入mysql数据库
mysql> mysql -u username -p
# 查看表
mysql> use mysql
mysql> select Host,User from user;

2.更新/授权用户表# 更新用户表

# 更新用户表
mysql> UPDATE `user` SET `Host` = '123.456*.*' where `Host` = '113.128.*.*';

# 授权用户表
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'123.456.*.*' IDENTIFIED BY 'password' WITH GRANT OPTION;

123.456.*.是允许远程访问的IP的值,root是账户名,后面的password是密码
即,允许来自113.129..的连接并使用root账户和password这个密码进行访问
ALL PRIVILEGES ON 后面的*.*表示所有数据库、所有的表,即完全访问权限,可以指定为特定数据库。
如果允许所有ip访问,则ip可以用%代替。

3.刷新权限

mysql> flush privileges;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值