Ubuntu mysql 中文,啓動,重啓,遠程連接相關問題

系統環境:ubuntu server 14.04 x64

Ubuntu Server下啓動、停止、重啓MySQL數據庫的三種方式:

當我們需要修​​改MySQL的配置文件my.cnf(windows下爲 my.ini)來進行一些設置的時候,修改完之後我們需要重啓MySQL。
my.cnf文件位置爲:/ect/mysql/my.cnf
Waring:如果該文件配置錯誤,MySQL將無法啓動。

啓動mysql:
方式一:sudo /etc/init.d/mysql start 
方式二:sudo start mysql
方式三:sudo service mysql start

停止mysql:
方式一:sudo /etc/init.d/mysql stop 
方式二:sudo stop mysql
方式san:sudo service mysql stop

重啓mysql:
方式一:sudo/etc/init.d/mysql restart
方式二:sudo restart mysql
方式三:sudo service mysql restart


查看日誌:
cat /var/log/mysql.err
cat /var/log/mysql/error.log

不支持中文:
修改 /etc/mysql/my.cnf
在 [client] 下面增加:
default-character-set=utf8 或 character_set_server=utf8
在 [mysqld] 下面增加:
default-character-set=utf8 或 character_set_server=utf8
錯誤提示:unknown variable 'default-character-set=utf8'

修改配置文件 /etc/mysql/my.cnf 中的“default-character-set=utf8” 爲 “character_set_server=utf8”


遠程連接數據庫:

數據庫安裝完成後,如果數據庫是安裝在遠程的服務器上,則發現只能通過遠程連接終端本地連接到數據庫,而不能通過像mysql-front,navicat客戶端遠程連接上數據庫,可能出現:

Can’t connect to MySQL server on ‘192.168.10.18′ (10061)

看到這裏的MYSQL 10061錯誤了嗎?是因爲,mysql的默認配置爲了增強安全性,禁止了非本機的訪問,在ubuntu中是這樣,debian中也是。禁止的方式以前是在my.cnf中有一句:

skip-network

現在則變成了:

# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. 
bind-address = 127.0.0.1

就是隻監聽本機地址。所以,如果要開放局域網內的訪問,需要註釋掉這一句,或者改成:

bind-address = 0.0.0.0

就行了

這樣改完3306端口就開始監聽了,但是MYSQL的權限還沒有打開ROOT遠程登陸

Mysql默認是不允許遠程連接的,因爲有很大的安全隱患。

需要手動增加可以遠程訪問數據庫的用戶。


方法一、本地登入mysql,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,將"localhost"改爲"%"

#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

方法二、直接授權(推薦 )

    從任何主機上使用root用戶,密碼:youpassword(你的root密碼)連接到mysql服務器:

# mysql -u root -proot 
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;


重啓Mysql服務後,這樣就可用圖形化數據庫管理軟件( Navicat MySQL 或者用更NB的SQLyog是個不錯的選擇)遠程訪問Mysql。


補充:

1.mysql數據庫中user表中的host列是指定登錄的ip,比如說 user=root host=192.168.1.1 ,這裏的意思就是說,root用戶只能通過 192.168.1.1的客戶端去訪問,而%則是個通配符, 如果host=192.168.1.%,那麼就表示 只要是 ip爲host=192.168.1.前綴的客戶端都可以連接,那麼host=%的話則表示所有ip都有權去連接,這也就是爲什麼在開啓遠程連接的時候,大部分人都直接把host改成%的緣故,因爲省事。

2.mysql 的grant命令

grant 權限1,權限2,…權限n on 數據庫名稱.表名稱 to 用戶名@主機地址 identified by‘連接口令’;

發佈了144 篇原創文章 · 獲贊 29 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章