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客戶端遠程連接上數據庫,可能出現:
看到這裏的MYSQL 10061錯誤了嗎?是因爲,mysql的默認配置爲了增強安全性,禁止了非本機的訪問,在ubuntu中是這樣,debian中也是。禁止的方式以前是在my.cnf中有一句:
skip-network
現在則變成了:
就是隻監聽本機地址。所以,如果要開放局域網內的訪問,需要註釋掉這一句,或者改成:
bind-address = 0.0.0.0
就行了
這樣改完3306端口就開始監聽了,但是MYSQL的權限還沒有打開ROOT遠程登陸
Mysql默認是不允許遠程連接的,因爲有很大的安全隱患。
需要手動增加可以遠程訪問數據庫的用戶。
方法一、本地登入mysql,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,將"localhost"改爲"%"
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‘連接口令’;