Mysql常見報錯解決方法

2022-07-28 02:36:08 字數 3009 閱讀 7131

一:登入報錯

error 1045 (28000): access denied for user 'mysql'@'localhost' (using password: no)

mysql日誌檔案總結此問題的整體步驟如下:

第一步:修改pid路徑

檢視日誌檔案中錯誤資訊:

cat /var/log/mysqld.log

2013-10-26 16:39:34 3712 [error] /usr/sbin/mysqld: can't create/write to file '/var/run/mysqld/mysqld.pid' (errcode: 2 - no such file or directory)

2013-10-26 16:39:34 3712 [error] can't start server: can't create pid file: no such file or directory

原因:mysql 使用者沒有操作/var/run目錄的許可權,所以pid檔案無法建立,導致登陸時無法建立 程序資訊檔案,登陸程序就無法開啟,自然無法登陸。

解決:修改 /etc/my.conf

原來為:

#pid-file=/var/run/mysqld/mysqld.pid

修改為pid-file=/var/lib/mysql/mysqlid.pid

檢查發現,mysql使用者根本無法cd到/var/run/。修改為mysql可以有許可權的目錄後再執行mysql就進入資料庫了。

第二步:修改資料庫預設密碼

/etc/init.d/mysql stop   (service mysqld stop)

/usr/bin/mysqld_safe --skip-grant-tables

另外開個ssh連線

[root@localhost ~]# mysql

mysql>use mysql

mysql>update user set password=password("123456") where user="root";

mysql>flush privileges;

mysql>exit

然後[mysql@localhost etc]$ ps -a | grep mysql

4532 pts/0    00:00:00 mysqld_safe

5542 pts/0    00:00:00 mysqld

[mysql@localhost etc]$ kill -9 4532 5542

正常啟動 mysql:/etc/init.d/mysql start   (service mysqld start)

第三步:

登陸ok。 mysql -uroot -p

二:遠端登入mysql資料庫報錯

error 1130 (hy000): host '192.168.76.50' is not allowed to connect to this mysql server

1.改表法。

可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"

mysql -u root -ptalent123

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

mysql> flush privileges;

2.授權法。

例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。

grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;

如果你想允許使用者myuser從ip為192.168.1.3的主機連線到mysql伺服器,並使用mypassword作為密碼

grant all privileges on *.* to 'myuser'@'192.168.1.3' identified by

'mypassword' with grant option;

三:建立普通使用者後無法在本地登入

[root@jcfx-4 ~]#mysql -h192.168.76.73 -usalt -psalt

error 1045 (28000): access denied for user 'salt'@'jcfx-4' (using password: yes)

通過檢視user表發現localhost對應的是空密碼,所以這是導致不能再本地登入的根本原因:

解決方法:

mysql> grant select,insert,update,delete on salt.* to salt@"localhost" identified by "salt";

query ok, 0 rows affected (0.01 sec)

mysql> flush privileges;

query ok, 0 rows affected (0.00 sec)

四:mysql登入報錯:

[root@patronus2 bin]# mysql

-bash: mysql: command not found

解決方法:

ln -s /usr/local/mysql/bin/mysql /usr/bin

五:設定字符集

server version: 5.6.21 mysql

character_set_server=utf8

注:遇到異常情況,通過上面列舉的辦法應該是可以解決;

git常見報錯解決方法

1 warning lf will be replaced by crlf in idea workspace.xml.git config global core.autocrlftrue 1 拉取伺服器 注 提交 之前,需先從伺服器上面拉取 以防覆蓋別人 git pull origin moni...

Git常見報錯及解決方法

1 warning lf will be replaced by crlf in idea workspace.xml.git config global core.autocrlf true1 拉取伺服器 注 提交 之前,需先從伺服器上面拉取 以防覆蓋別人 git pull origin moni...

mysql 常見報錯和問題

在乙個查詢中傳遞的資料過大,導致 error 2006 mysql server has gone away 方法1.這種情況下可以通過設定mysql的配置檔案my.cnf檔案修改下面的選項來修復 max allowed packet 64m 方法2.檢視預設引數值 mysql show globa...