python數據庫-MySQL安裝問題總結(48)

 

1、ERROR 1698(28000):Access denied for user root@localhost錯誤

個人操做系統是ubuntu:html

個人MySQL版本是:mysql

 安裝完成後,登陸mysql的時候就出現了以下錯誤:sql

由於安裝的過程當中沒讓設置密碼,可能密碼爲空,但不管如何都進不去mysql。那麼該怎麼作呢數據庫

第一步

在ubuntu的terminal(也即終端)上輸入ubuntu

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

進入到配置文件,而後在這個配置文件中的[mysqld]這一塊中加入skip-grant-tables這句話。 vim

做用:就是讓你能夠不用密碼登陸進去mysql。安全

保存:wq,退出。輸入:service mysql restart,從新啓動mysql。 服務器

第二步

在終端上輸入mysql -u root -p,碰見輸入密碼的提示直接回車便可,進入mysql網絡

而後分別執行下面四句話:socket

1 use mysql;   而後敲回車
2 update user set authentication_string=password("你的密碼") where user="root";  而後敲回車
3 flush privileges;  而後敲回車
4 quit;

第三步

從新進入到mysqld.cnf文件中去把剛開始加的skip-grant-tables這條語句給註釋掉。

再返回終端輸入mysql -u root -p,應該就能夠進入數據庫了。

 

2、ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

若是出現這個問題,仍是須要像上個問題同樣,先把MySQL設置成無密碼狀態,也就是把上個問題中的第三步註釋的

skip-grant-tables

這句話在去掉註釋,讓它從新起效,而且還要重啓MySQL服務

service mysql restart

起效後輸入下面這兩行命令

1、use mysql;
2select user,plugin from user;

從圖中能夠看到在執行了select user,plugin from user;後,錯誤緣由是由於plugin root的字段是auth_socket,那咱們改掉它爲下面的mysql_native_password就好了。輸入:

update user set authentication_string=password("123456"),plugin='mysql_native_password' where user='root';

而後回車執行如下,再輸入select user,plugin from user;回車,咱們能看到root用戶的字段改爲功了。

最後quit退出。再把 skip-grant-tables這句話註釋上

這個問題就解決了

 

3、ERROR 2003 - Can't connect to MySQL server on '192.168.100.109' (61 "Connection refused")

問題分析:

一、多是網絡鏈接問題。

  解決方案:若是能ping 192.168.100.109,能ping通,則排除此狀況。

2. 可能因爲192.168.100.109主機上的my.cnf裏配置了skip_networking。

  若是配置了skip_networking,這就意味着MySQL只能經過本機Socket鏈接(socket鏈接也是本地鏈接的默認方式),放棄對TCP/IP的監聽  固然也不讓本地程序鏈接MySQL(Connector/只能經過TCP/IP來鏈接)。

  解決方案:仍是使用命令 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 進入到mysqld.cnf文件中,若是有skip_networking,註釋掉就好了

三、可能因爲192.168.100.109主機上的my.cnf裏配置了bind_address=127.0.0.1,只容許本地socket鏈接

  解決方案:也是使用命令 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 進入到mysqld.cnf文件中,若是有bind_address=127.0.0.1,註釋掉就好了 

  

四、還有多是用戶名和密碼輸入錯誤

  解決方案:從新輸入一下用戶名和密碼

 五、還有多是port端口的問題

  解決方案:有可能192.168.100.109的主機上的MySQL port不是默認3306, 這樣我遠程鏈接時,沒有指定--port,用的是3306, 而192.168.100.109上沒有對3306進行監聽。

 

4、ERROR 1045 - Access denied for user 'root'@'localhost' (using password: YES)

  出現access denied的緣由有以下可能:

    1.  mysql的服務器中止
    2.   用戶的端口號或者IP致使  
    3.   mysql的配置文件錯誤----my.ini等文件
    4.   root用戶的密碼錯誤

  一、若MySQL已經沒有啓動,重啓MySQL服務器便可

      二、若用戶的端口號與IP(3306/3307)不一致:

  三、要是mysql的配置文件錯誤,只須要將init文件中止,在重啓一下便可

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

  四、還有就是密碼錯誤,從新輸入密碼試試

 

5、ERROR 1130 (HY000): Host '192.168.100.102' is not allowed to connect to this MySQL server

  問題緣由:mysql服務器出於安全考慮,默認只容許本地登陸數據庫服務器。

  問題解決:登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%",而後重啓mysql這樣就容許全部的遠程機器進行訪問了。

步驟1:修改mysql表

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

mysql>quit

步驟2:重啓mysql 

service mysql restart

這個問題就解決了

相關文章
相關標籤/搜索