MySQL是最流行的开源数据库之一,我们在本地操作MySQL时,经常会因为不小心忘记了root帐号的密码,或者其他的原因,而导致无法正常连接数据库。另外,在局域网环境内,如何授权其他的服务器或主机连接我们的数据库服务器,也是我们经常会遇到的问题,针对上述这两个问题,本文整理了一下解决方法,以便大家需要时查看。
修改root帐号密码
如果忘记了root帐号的密码,可以编辑my.cnf文件,添加skip-grant-tables这一行,这样就可以通过root帐号而不使用密码直接连接数据库,连接成功后,可以修改root帐号的密码。具体过程看以下步骤:
1、配置无密码连接数据库
编辑my.cnf文件
vim /www/server/mysql/my.cnf
找到[mysqld],在它的后面任意下一行添加如下代码
skip-grant-tables
:wq保存退出
然后重启mysql,命令如下:
/etc/init.d/mysqld restart
2、修改root的密码
在命令窗口输入mysql
在mysql数据库有一个user表,存储的是数据库用户的信息,我们需要修改的里面用户的密码;
show databases;
命令依次为:
use mysql; update user set password=password("123456") where user="root"; flush privileges;
这样,root账户就已经重置成新的密码了
3、还原my.cnf
编辑my.cnf,去掉刚才添加的内容
:wq保存退出
然后重启MySQL
2 查看权限
使用如下命令:
select user,host,password from user;
查询结果如下:
3. 授权
授权局域网其他机器使用帐号root和密码123456访问本数据库。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES;
如果要指定某台机器访问,可以将上面的%改成对应的内网ip地址。