Ubuntu中MySQL的安裝與常見錯誤

Ubuntu安裝MySQL

  • sudo apt-get install mysql-server
  • sudo apt-get install mysql-client
  • sudo apt-get install libmysqlclient-dev

此時安裝的是所配的源文件中的最新版的MySQL,如果不想安裝這個版本的話,需要搜索軟件倉庫中的MySQL版本

  • sudo apt-cache search mysql-server
  • sudo apt-cache search mysql-client

然后安裝選中的版本即可,安裝mysql-server的過程中會讓設置root賬戶的密碼

設置root密碼

輸入兩遍密碼后等待自動安裝即可,安裝完成后在/etc/init.d下面會發現一個mysql的服務, 通過service mysql start即可開啟(安裝完成后默認開啟),也可以通過命令service mysql status查看mysql服務的狀態。

通過命令mysql -u root -p可以登錄mysql數據庫,其中-u表示表示用戶名,-p表示密碼,命令輸入之后提示輸入密碼。

輸入密碼

輸入正確密碼后即可進入數據庫(注:輸入密碼時不可見)


進入數據庫

此時,通過show databases;就可以查看當前的數據庫了

image.png

Ubuntu中MySQL的常見錯誤

1. ERROR 2003 (HY000): Can't connect to MySQL server on '10.10..' (10061)

命令行報錯
Navicat報錯

需要注釋掉bind-address = 127.0.0.1
網上都說是修改/etc/mysql/my.cnf中,但是找了很久沒有找到,后來發現其實是在/etc/mysql/mysql.conf.d/mysql.cnf中。

2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

2002錯誤

這個問題的原因是mysql的服務沒有開啟,輸入命令service mysql start,然后輸入用戶密碼即可。

3. ERROR 1130 (HY000): Host '10.10..*' is not allowed to connect to this MySQL server

1130錯誤

錯誤原因:可能是因為系統數據庫mysql中user表中的host是localhost的原因,于是,我嘗試把這個值改為自己服務器的ip,果然就好用了,不過用 mysql -u root -p命令就連不上數據庫了,需要用mysql -h 服務器ip -u root -p因為默認的連接mysql數據庫user表中host的值,而這個命令的默認host是localhost,就連不上了。

  1. 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
    mysql -u root -p進入數據庫。
mysql>use mysql
mysql>update user set host = '%' where user = 'root';
  1. 使用終端連接到mysqlmysql -u root -p,然后運行下面的sql
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    這句話的意思是添加一個用戶username并且允許在任何ip上通過password登錄數據庫。
    其中username為數據庫的用戶名,password是數據庫root的密碼,%是一個通配符,表示所有的IP均可登錄,如果要指定登錄IP的話將%修改為指定的IP即可。

4. ERROR 1045 (28000): Access denied for user 'root'@'10.10.8.78' (using password: YES)

1045錯誤

這個錯誤時連接用戶的密碼不正確,輸入正確密碼連接即可。
附:修改密碼的辦法:

  1. 用root權限查看/etc/mysql/debian.cnf文件,普通用戶沒有查看的權限
    sudo cat /etc/mysql/debian.cnf
  2. 使用debian.cnf文件中[client]下面的user和password進入mysql
  3. 在數據庫中運行下面的sql
    update mysql.user set authentication_string=password('newPassword') where user='root'
    注:
    1. newPassword為修改的新密碼。
    2. authentication_string為新版mysql數據庫的字段,老版本的字段為password
  4. 運行下面的sql然后重啟mysql服務service mysql restart
mysql> flush privileges;
mysql> \q
  1. 重新連接數據庫,這個時候應該就已經完美的解決問題了。

5. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

1820錯誤
mysql> SET PASSWORD = PASSWORD('NewPassword');
mysql> flush privileges;
mysql> \q
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容