赞
踩
MySQL1045错误解决方法(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes))
登录数据库时,发现数据库连接不上,报错如下:
解决办法
首先,停止MySQL服务
service mysqld stop
修改mysql数据库密码
修改MySQL的登录设置:
vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存并且退出vi。
3.重新启动mysqld
service mysqld restart
或者 service mysql restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
或者出现:
Redirecting to /bin/systemctl restart mysqld.service
4.登录并修改MySQL的root密码
mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> USE mysql ;
Database changed
mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE User='root';
(注意括号里单引号内的就是你要重新设置的密码)
Query OK, 0 rows affected (0.00 sec)
Rows matched: 5 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5.将MySQL的登录设置修改回来
vim /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除
保存并且退出vim
6.重新启动mysqld
service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
或:
Redirecting to /bin/systemctl restart mysqld.service
7.检测新密码是否生效
输入mysql -u root -p
回车
然后输入新密码,回车,如下图修改成功
数据库远程连接出现Host is not allowed to connect to this MySQL server解决方法
先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:
1.在装有MySQL的机器上登录MySQL mysql -u root -p
密码
2.执行use mysql;
3.执行update user set host = '%' where user = 'root';
这一句执行完可能会报错,不用管它。
4.执行FLUSH PRIVILEGES;
5.经过上面4步,就可以解决这个问题了。
注: 第四步是刷新MySQL的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因。
linux服务器安装Mysql后,只能看到information_schema/test这两个库,无法修改密码
打开一个ssh连接,登录到mysql数据库
直接用命令mysql
,进入数据库
修改mysql.user表
use mysql;
delete from user;
运行下面的
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv, Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections, plugin, authentication_string) VALUES
("%","root","","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","","","","",0,0,0,0,"",""),
("localhost","","","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","","","","",0,0,0,0,"","");
授权
grant all privileges on *.* to 'root' @'localhost' identified by 'root';
刷新
flush privileges;
4.重启mysql: service mysqld restart
或者 service mysql restart
启动后登录mysql数据库,可以正常看到所有的数据库了。
2003-can’t connect to mysql server on '服务器’
grant all privileges on *.* to 'root' @'localhost' identified by 'root';
flush privileges;
授权
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
在登录mysql数据库时报错为如下所示:
# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/application/mysql5.1.72/tmp/mysql.sock‘ (2)
#查看my.cnf关于socket的配置
# more /etc/my.cnf |grep sock
socket =/tmp/mysql.sock
#由上可知my.cnf中定义的为/tmp目录下,而错误提示为/tmp/mysql.sock目录下
#也就是说mysqld已经声称了正确的sock文件,但客户端连接还是从初始目录去找sock文件
解决方法
先停止mysql服务器
# /etc/init.d/mysqld stop
Shutting down MySQL.[ OK ]
#修改my.cnf,如下
# vi /etc/my.cnf
[mysql]
no-auto-rehash
socket = /tmp/mysql.sock #添加该行
#重启mysql服务器
# service mysqld start
Starting MySQL…[ OK ]
#再次连接正常
# mysql -uroot -p
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。