Ubuntu是一個(gè)流行的Linux操作系統(tǒng),基于Debian發(fā)行版和GNOME桌面環(huán)境,和其他Linux發(fā)行版相比,Ubuntu非常易用,和Windows相容性很好,非常適合Windows用戶(hù)的遷移,預(yù)裝了大量常用軟件,中文版的功能也較全,支持拼音輸入法,預(yù)裝了firefox、Open Office、多媒體播放、圖像處理等大多數(shù)常用軟件,一般會(huì)自動(dòng)安裝網(wǎng)卡、音效卡等設(shè)備的驅(qū)動(dòng)。
安裝MySQL
在Ubuntu上可以使用Ubuntu Software Center或者apt命令來(lái)安裝MySQL,兩種方式都十分方便。
1. 使用Ubuntu Software Center:打開(kāi)Ubuntu Software Center,在右上角的搜索框查詢(xún)mysql,然后選定MySQL Server,點(diǎn)擊安裝即可。
2. 使用apt:打開(kāi)終端執(zhí)行 ”sudo apt-get install mysql-server“ 即可。
MySQL初始配置
MySQL完成安裝后可以直接使用root賬戶(hù)登錄,且該賬戶(hù)默認(rèn)是沒(méi)有密碼的。注意這里的root角色就是指你的Ubuntu的root角色,如果你當(dāng)前使用的系統(tǒng)帳號(hào)不是root的話,也不必切換到系統(tǒng)root賬戶(hù),可以在登錄MySQL的時(shí)候使用“-u"這個(gè)參數(shù)來(lái)指定登錄賬戶(hù)。如:
$ mysql -u rootmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+4 rows in set (0.00 sec)mysql> select Host, User from user;+-----------+------------------+| Host | User |+-----------+------------------+| 127.0.0.1 | root || ::1 | root || iUbuntu | || iUbuntu | root || localhost | || localhost | debian-sys-maint || localhost | root |+-----------+------------------+7 rows in set (0.00 sec)
因?yàn)榇藭r(shí)root賬戶(hù)默認(rèn)沒(méi)有密碼,所以不用輸入密碼就能以root角色登錄并查看所有信息的權(quán)限。如果換成非root角色登錄MySQL,則只擁有部分?jǐn)?shù)據(jù)庫(kù)操作權(quán)限。
$ mysqlmysql> show databases;+--------------------+| Database |+--------------------+| information_schema || test |+--------------------+2 rows in set (0.00 sec)mysql> use mysqlERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
因此MySQL完成安裝后的第一件事就是給root用戶(hù)設(shè)置密碼,否則數(shù)據(jù)庫(kù)將毫無(wú)安全可言。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "password>";
將以上命令中的password>替換為你要設(shè)定的密碼,以上命令的意思是對(duì)在本機(jī)(localhost)使用password>密碼登錄的root用戶(hù)賦予所有數(shù)據(jù)庫(kù)的操作權(quán)限。設(shè)置密碼后,如果再以root用戶(hù)登錄就需要輸入密碼了,如:
$ mysql -u rootERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)$ mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 75Server version: 5.5.34-0ubuntu0.13.10.1 (Ubuntu)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
建立數(shù)據(jù)庫(kù)獨(dú)立用戶(hù)
因?yàn)閞oot用戶(hù)擁有數(shù)據(jù)庫(kù)的所有操作權(quán)限,所以不能輕易地提供給別人使用。在一個(gè)MySQL實(shí)例中可以創(chuàng)建多個(gè)數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)可能歸屬于不同項(xiàng)目,每個(gè)數(shù)據(jù)庫(kù)的操作角色也不一樣。對(duì)此可以針對(duì)不同那個(gè)數(shù)據(jù)庫(kù)指定用戶(hù)進(jìn)行訪問(wèn)。
首先使用root角色創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)mysql> create database db_web_monitor然后將這個(gè)數(shù)據(jù)庫(kù)授予一個(gè)叫xavier的用戶(hù)使用mysql> GRANT ALL PRIVILEGES ON db_web_monitor.* TO xavier@localhost IDENTIFIED BY "xavier";
這樣就可以使用xavier用戶(hù),密碼為xavier在本機(jī)登錄MySQL操作db_web_monitor數(shù)據(jù)庫(kù)了。
$ mysql -u xavierERROR 1045 (28000): Access denied for user 'xavier'@'localhost' (using password: NO)$ mysql -u xavier -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 77Server version: 5.5.34-0ubuntu0.13.10.1 (Ubuntu)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || db_web_monitor || test |+--------------------+3 rows in set (0.00 sec)mysql>
開(kāi)放遠(yuǎn)程登錄權(quán)限
1. 首先修改MySQL的配置文件,允許監(jiān)聽(tīng)遠(yuǎn)程登錄。
$ sudo vi /etc/mysql/my.cnf找到bind-address所在行 45 # Instead of skip-networking the default is now to listen only on 46 # localhost which is more compatible and is not less secure. 47 bind-address = 127.0.0.1將 bind-address值修改為本機(jī)IP即可。注意注釋說(shuō)明,如果是較老版本的MySQL,此處就應(yīng)該是skip-networking,直接將其注釋即可。
2. 授予用戶(hù)遠(yuǎn)程登錄權(quán)限。
mysql>GRANT ALL PRIVILEGES ON db_web_monitor.* TO xavier@"%" IDENTIFIED BY "xavier";
如此這般,xavier用戶(hù)就可以在任意主機(jī)通過(guò)IP訪問(wèn)到本機(jī)MySQL,對(duì)db_web_monitor數(shù)據(jù)庫(kù)進(jìn)行操作了。