一、使用ps -ef|grep mysql查看mysql是否啟動以及查看目錄結構
MySQL的目錄結構:
/var/lib/mysql?????? mysql數據庫文件的存放路徑
/usr/share/mysql??? 配置文件目錄? mysql.server命令及配置文件
/usr/bin?????? 相關命令目錄 mysqladmin? mysqldump等命令
/etc/init.d/mysql??? 起停相關腳本
二、mysql配置文件
用rpm包安裝的MySQL是不會安裝/etc/my.cnf文件的,有以下兩種可能
1. my.cnf只是MySQL啟動時的一個參數文件,可以沒有它,這時MySQL會用內置的默認參數啟動,
2. MySQL在啟動時自動使用/usr/share/mysql目錄下的my-medium.cnf文件,這種說法僅限于rpm包安裝的MySQL
我們只需要把my-medium.cnf復制到/etc/my.cnf目錄下即可。
`cp /usr/share/mysql/my-medium.cnf /etc/my.cnf`
三、MySQL遠程連接
1.先進入MySQL,然后查詢當前用戶詳情:如下
mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+----------------------------+------+----------------------------------------------------------------------------+
| host? ? ? ? ? ? ? ? ? ? ? ? ? ?| user | password? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+----------------------------+------+----------------------------------------------------------------------------+
|?localhost? ? ? ? ? ? ? ? ? ? ?| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1? ? ? ? ? ? ? ? ? ? | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------------------------+------+---------------------------------------------------------------------------+
4 rows in set (0.00 sec)
2.?添加或修改一行數據,使得host主機有 % ,%表示任何IP都可以連接
mysql> update user set password=password('123456') where user = 'root';
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;
注意:執行完畢以后,一定要執行flush privileges;
3.?接下來用使用root用戶登錄,然后use mysql;如果出現如下情況:
ERROR 1044 (42000): Access denied for user ''@'localhost' todatabase 'mysql'!即不能使用mysql,因為在mysql數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候是雖然用的是root,但實際是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來,處理方法:
(1).關閉mysql
?? # service mysqld stop
(2.)屏蔽權限
?? # mysqld_safe --skip-grant-table
?? 屏幕出現: Starting demo from .....
(3.)新開起一個終端輸入
?? # mysql -u root mysql
?? mysql> delete from user where?user='';
?? mysql> flush privileges;//記得要這句話,否則如果關閉先前的終端,又會出現原來的錯誤
注意:執行完畢以后,一定要執行flush privileges,不然仍然會出錯;
4.最后的結果如下,然后可以進行遠程連接,如果仍然無法連接,可以查看防火墻是否攔截
5.如果是阿里云ECS服務器,以上工作都做好了,仍然無法連接,則需要配置ecs安全組防火墻
(1.)在服務器控制臺找到? 更多->網絡和安全組->安全組配置
(2)到達安全組列表,點擊配置規則->添加安全組規則:
確定以后,即配置完畢
四、mysql中文亂碼問題
1.進入mysql中輸入show variables like '%char%';命令查看mysql的字符集,如下圖:
數據庫默認的字符編碼不是utf-8,所以導致亂碼,所以需要修改配置文件中的字符集編碼。
2.修改配置文件字符集編碼,vim my.cnf 進入修改mysql的配置文件
①找到[client],在socket下一行加入default-character-set=utf8,如下圖:
②找到[mysqld]加入如下設置
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
如下圖:
③找到[mysql]加入default-character-set=utf8設置:如下圖
3.重新開啟mysql服務
執行① service mysql stop ②service mysql start或者命令service mysql restart