这两天刚刚接触了MySQL,在使用过程中遇到了问题,这里写出问题及解决办法,以后遇到问题再来添加,以备后用。
1.mysql增加新用户无法登陆解决方法
DBA:
创建一个新用户: create user hncu identified by '1234';
给用户授权: grant all on *.* to 'hncu'@'%' with grant option;
※※※※注意,创建新用户之后,要关闭并重启MySql服务器才会生效!
但使用用户登陆失败:
root@controller:~# mysql -h localhost -ukeystone -ppassword
ERROR 1045 (28000): Access denied for user 'keystone'@'localhost' (using password: YES)
解决方法:
增加普通用户后,执行:
mysql> use mysql
mysql> delete from user where user='';
mysql> flush privileges;
意思是删除匿名用户。
2.修改sql用户密码:
1)mysqladmin命令
格式如下(其中,USER为用户名,PASSWORD为新密码):
该命令之后会提示输入原密码,输入正确后即可修改。
例如,设置root用户的密码为123456,则
mysqladmin -u root -p password 123456
UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;
SET PASSWORD FOR root=PASSWORD('123456');
打开配置文件,在文件最后一行添加:skip-grant-tables,然后保存退出。
意思为就是在启mysql时不启动grant-tables
-
重启MySql服务:
net stop mysql
net start mysql
-
设置新的root密码。
mysql -u root -p 直接回车,无需输入密码就可以进入数据库了。
此时在命令行下执行 use mysql (切换到系统数据库)
执行以下语句既可修改root用户密码:
update user set password=PASSWORD("123456") where user='root';
-
还原配置文件,删除刚才在配置文件中添加的一行。然后重启mysql服务,就可以使用新设置的密码进行登录了。