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,就連不上了。
- 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
mysql -u root -p
進入數據庫。
mysql>use mysql
mysql>update user set host = '%' where user = 'root';
- 使用終端連接到mysql
mysql -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錯誤
這個錯誤時連接用戶的密碼不正確,輸入正確密碼連接即可。
附:修改密碼的辦法:
- 用root權限查看/etc/mysql/debian.cnf文件,普通用戶沒有查看的權限
sudo cat /etc/mysql/debian.cnf
- 使用debian.cnf文件中[client]下面的user和password進入mysql
- 在數據庫中運行下面的sql
update mysql.user set authentication_string=password('newPassword') where user='root'
注:- newPassword為修改的新密碼。
- authentication_string為新版mysql數據庫的字段,老版本的字段為password
- 運行下面的sql然后重啟mysql服務
service mysql restart
mysql> flush privileges;
mysql> \q
- 重新連接數據庫,這個時候應該就已經完美的解決問題了。
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