首先是找到my.cnf文件

# find / -name 'my.cnf'

1

进入etc目录

# cd /etc

1

编辑my.cnf文件

# vi my.cnf

1

找到[mysqld]区域
1

在此区域最下面输入

skip-grant-tables

1

按esc 输入:wq回车保存退出

1

重启mysql服务

#/etc/init.d/mysqld restart
或者
# service mysqld restart

接下来访问数据库

方式一:

#mysql -uroot -p

方式二(建议):

进入mysql的安装目录,在mysql的bin目录下用下面的命令
1

密码这里不用输入,直接回车

1

进入MYSQL后,重置密码

旧版本mysql直接输入

UPDATE user SET password=password('123456') WHERE User='root';

1

123456为自己设置的密码

最后保存,退出

flush privileges ;
quit

新版本的mysql重置密码(我用的5.7.16)

特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了。
而是将加密后的用户密码存储于authentication_string字段
mysql> use mysql;
mysql> UPDATE user SET authentication_string=password("test123") WHERE user='root';   
mysql> flush privileges;
mysql> exit;   

重新编辑my.cnf文件

# vi my.cnf

将插入的那行代码去掉

去掉刚才加的这行skip-grant-tables代码

保存退出

然后重启MySQL

# service mysqld restart

1

自此MySQL的密码就设置好了

下面是解决Navicat连接服务器中Mysql权限问题

问题描述:

Error: 1130 - Host'ClientIP' is not allowed to connect to this MySQL server。

解决方法一(如果此方法无效建议使用下面的方法):

使用root登录Linux,登录MySQL

# mysql -u root -p  

进入MySQL后

更改允许IP登录的范围

mysql>grant all privileges on *.* to 'root'@'%' identified by 'MySQL登录密码' with grant option;

如果将%换成单个IP,就是只允许这个IP主机登录MySQL

退出MySQL,重启MySQL服务即可。

解决方法二:

mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'  from user where user='root';

到这里,就可以登录Navicat来连接服务器的数据库了

1

Logo

更多推荐