CentOS6.4下Mysql數(shù)據(jù)庫(kù)的安裝與配置
轉(zhuǎn):http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html
一、mysql簡(jiǎn)介
在Linux上安裝mysql數(shù)據(jù)庫(kù),我們可以去其官網(wǎng)上下載mysql數(shù)據(jù)庫(kù)的rpm包,http://dev.mysql.com/downloads/mysql/5.6.html#downloads
在這里我是通過yum來進(jìn)行mysql數(shù)據(jù)庫(kù)的安裝的,通過這種方式進(jìn)行安裝,可以將跟mysql相關(guān)的一些服務(wù)、jar包都給我們安裝好,所以省去了很多不必要的麻煩?。。?/p>
二、卸載掉原有mysql
因?yàn)閙ysql數(shù)據(jù)庫(kù)在Linux上實(shí)在是太流行了,所以目前下載的主流Linux系統(tǒng)版本基本上都集成了mysql數(shù)據(jù)庫(kù)在里面,我們可以通過如下命令來查看我們的操作系統(tǒng)上是否已經(jīng)安裝了mysql數(shù)據(jù)庫(kù)
[root@xiaoluo ~]# rpm -qa | grep mysql // 這個(gè)命令就會(huì)查看該操作系統(tǒng)上是否已經(jīng)安裝了mysql數(shù)據(jù)庫(kù)
有的話,我們就通過 rpm -e 命令 或者 rpm -e --nodeps 命令來卸載掉
[root@xiaoluo ~]# rpm -e mysql // 普通刪除模式 [root@xiaoluo ~]# rpm -e --nodeps mysql // 強(qiáng)力刪除模式,如果使用上面命令刪除時(shí),提示有依賴的其它文件,則用該命令可以對(duì)其進(jìn)行強(qiáng)力刪除
在刪除完以后我們可以通過 rpm -qa | grep mysql 命令來查看mysql是否已經(jīng)卸載成功!!
三、通過yum來進(jìn)行mysql的安裝
我是通過yum的方式來進(jìn)行mysql的數(shù)據(jù)庫(kù)安裝,首先我們可以輸入 yum list | grep mysql 命令來查看yum上提供的mysql數(shù)據(jù)庫(kù)可下載的版本:
[root@xiaoluo ~]# yum list | grep mysql
就可以得到y(tǒng)um服務(wù)器上mysql數(shù)據(jù)庫(kù)的可下載版本信息:
?
?
然后我們可以通過輸入?yum install -y mysql-server mysql mysql-devel?命令將mysql mysql-server mysql-devel都安裝好(注意:安裝mysql時(shí)我們并不是安裝了mysql客戶端就相當(dāng)于安裝好了mysql數(shù)據(jù)庫(kù)了,我們還需要安裝mysql-server服務(wù)端才行)
?
[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-devel
?
在等待了一番時(shí)間后,yum會(huì)幫我們選擇好安裝mysql數(shù)據(jù)庫(kù)所需要的軟件以及其它附屬的一些軟件
?
?
我們發(fā)現(xiàn),通過yum方式安裝mysql數(shù)據(jù)庫(kù)省去了很多沒必要的麻煩,當(dāng)出現(xiàn)下面的結(jié)果時(shí),就代表mysql數(shù)據(jù)庫(kù)安裝成功了
?
?
此時(shí)我們可以通過如下命令,查看剛安裝好的mysql-server的版本
?
[root@xiaoluo ~]# rpm -qi mysql-server
?
我們安裝的mysql-server并不是最新版本,如果你想嘗試最新版本,那就去mysql官網(wǎng)下載rpm包安裝就行了,至此我們的mysql數(shù)據(jù)庫(kù)已經(jīng)安裝完成了。
四、mysql數(shù)據(jù)庫(kù)的初始化及相關(guān)配置
我們?cè)诎惭b完mysql數(shù)據(jù)庫(kù)以后,會(huì)發(fā)現(xiàn)會(huì)多出一個(gè)mysqld的服務(wù),這個(gè)就是咱們的數(shù)據(jù)庫(kù)服務(wù),我們通過輸入?service mysqld start?命令就可以啟動(dòng)我們的mysql服務(wù)。
注意:如果我們是第一次啟動(dòng)mysql服務(wù),mysql服務(wù)器首先會(huì)進(jìn)行初始化的配置,如:
[root@xiaoluo ~]# service mysqld start 初始化 MySQL 數(shù)據(jù)庫(kù): WARNING: The host 'xiaoluo' could not be looked up with resolveip. This probably means that your libc libraries are not 100 % compatible with this binary MySQL version. The MySQL daemon, mysqld, should work normally with the exception that host name resolving will not work. This means that you should use IP addresses instead of hostnames when specifying MySQL privileges ! Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h xiaoluo password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [確定] 正在啟動(dòng) mysqld: [確定]
?
這時(shí)我們會(huì)看到第一次啟動(dòng)mysql服務(wù)器以后會(huì)提示非常多的信息,目的就是對(duì)mysql數(shù)據(jù)庫(kù)進(jìn)行初始化操作,當(dāng)我們?cè)俅沃匦聠?dòng)mysql服務(wù)時(shí),就不會(huì)提示這么多信息了,如:
?
[root@xiaoluo ~]# service mysqld restart 停止 mysqld: [確定] 正在啟動(dòng) mysqld: [確定]
?
我們?cè)谑褂胢ysql數(shù)據(jù)庫(kù)時(shí),都得首先啟動(dòng)mysqld服務(wù),我們可以 通過??chkconfig --list | grep mysqld?命令來查看mysql服務(wù)是不是開機(jī)自動(dòng)啟動(dòng),如:
?
[root@xiaoluo ~]# chkconfig --list | grep mysqld mysqld 0:關(guān)閉 1:關(guān)閉 2:關(guān)閉 3:關(guān)閉 4:關(guān)閉 5:關(guān)閉 6:關(guān)閉
?
我們發(fā)現(xiàn)mysqld服務(wù)并沒有開機(jī)自動(dòng)啟動(dòng),我們當(dāng)然可以通過?chkconfig mysqld on?命令來將其設(shè)置成開機(jī)啟動(dòng),這樣就不用每次都去手動(dòng)啟動(dòng)了
?
[root@xiaoluo ~]# chkconfig mysqld on [root@xiaoluo ~]# chkconfig --list | grep mysql mysqld 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
?
mysql數(shù)據(jù)庫(kù)安裝完以后只會(huì)有一個(gè)root管理員賬號(hào),但是此時(shí)的root賬號(hào)還并沒有為其設(shè)置密碼,在第一次啟動(dòng)mysql服務(wù)時(shí),會(huì)進(jìn)行數(shù)據(jù)庫(kù)的一些初始化工作,在輸出的一大串信息中,我們看到有這樣一行信息 :
?
/usr/bin/mysqladmin -u root password 'new-password' // 為root賬號(hào)設(shè)置密碼
?
所以我們可以通過 該命令來給我們的root賬號(hào)設(shè)置密碼(注意:這個(gè)root賬號(hào)是mysql的root賬號(hào),非Linux的root賬號(hào))
?
[root@xiaoluo ~]# mysqladmin -u root password 'root' // 通過該命令給root賬號(hào)設(shè)置密碼為 root
?
此時(shí)我們就可以通過?mysql -u root -p?命令來登錄我們的mysql數(shù)據(jù)庫(kù)了
?
五、mysql數(shù)據(jù)庫(kù)的主要配置文件
1./etc/my.cnf?這是mysql的主配置文件
我們可以查看一下這個(gè)文件的一些信息
[root@xiaoluo etc]# ls my.cnf my.cnf
[root@xiaoluo etc]# cat my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
2./var/lib/mysql?? mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件存放位置
我們的mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件通常是存放在了/ver/lib/mysql這個(gè)目錄下
?
[root@xiaoluo ~]# cd /var/lib/mysql/ [root@xiaoluo mysql]# ls -l 總用量 20488 -rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1 -rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0 -rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1 drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql // 這兩個(gè)是mysql數(shù)據(jù)庫(kù)安裝時(shí)默認(rèn)的兩個(gè)數(shù)據(jù)庫(kù)文件 srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock drwx------. 2 mysql mysql 4096 4月 6 21:59 test // 這兩個(gè)是mysql數(shù)據(jù)庫(kù)安裝時(shí)默認(rèn)的兩個(gè)數(shù)據(jù)庫(kù)文件
?
我們可以自己創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),來驗(yàn)證一下該數(shù)據(jù)庫(kù)文件的存放位置
?
創(chuàng)建一個(gè)我們自己的數(shù)據(jù)庫(kù): mysql> create database xiaoluo; Query OK, 1 row affected (0.00 sec) [root@xiaoluo mysql]# ls -l 總用量 20492 -rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1 -rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0 -rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1 drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock drwx------. 2 mysql mysql 4096 4月 6 21:59 test drwx------. 2 mysql mysql 4096 4月 6 22:15 xiaoluo // 這個(gè)就是我們剛自己創(chuàng)建的xiaoluo數(shù)據(jù)庫(kù) [root@xiaoluo mysql]# cd xiaoluo/ [root@xiaoluo xiaoluo]# ls db.opt
3./var/log?mysql數(shù)據(jù)庫(kù)的日志輸出存放位置
我們的mysql數(shù)據(jù)庫(kù)的一些日志輸出存放位置都是在/var/log這個(gè)目錄下
[root@xiaoluo xiaoluo]# cd [root@xiaoluo ~]# cd /var/log [root@xiaoluo log]# ls amanda cron maillog-20130331 spice-vdagent.log anaconda.ifcfg.log cron-20130331 mcelog spooler anaconda.log cups messages spooler-20130331 anaconda.program.log dirsrv messages-20130331 sssd anaconda.storage.log dmesg mysqld.log tallylog anaconda.syslog dmesg.old ntpstats tomcat6 anaconda.xlog dracut.log piranha wpa_supplicant.log anaconda.yum.log gdm pm-powersave.log wtmp audit httpd ppp Xorg.0.log boot.log ibacm.log prelink Xorg.0.log.old btmp lastlog sa Xorg.1.log btmp-20130401 libvirt samba Xorg.2.log cluster luci secure Xorg.9.log ConsoleKit maillog secure-20130331 yum.log
?
其中mysqld.log 這個(gè)文件就是我們存放我們跟mysql數(shù)據(jù)庫(kù)進(jìn)行操作而產(chǎn)生的一些日志信息,通過查看該日志文件,我們可以從中獲得很多信息
?
因?yàn)槲覀兊膍ysql數(shù)據(jù)庫(kù)是可以通過網(wǎng)絡(luò)訪問的,并不是一個(gè)單機(jī)版數(shù)據(jù)庫(kù),其中使用的協(xié)議是 tcp/ip 協(xié)議,我們都知道m(xù)ysql數(shù)據(jù)庫(kù)綁定的端口號(hào)是 3306 ,所以我們可以通過?netstat -anp?命令來查看一下,Linux系統(tǒng)是否在監(jiān)聽 3306 這個(gè)端口號(hào):
結(jié)果如上所示,Linux系統(tǒng)監(jiān)聽的3306端口號(hào)就是我們的mysql數(shù)據(jù)庫(kù)?。。。?/p>
六、數(shù)據(jù)庫(kù)操作
關(guān)閉防火墻 service iptables off?
關(guān)閉防火墻開機(jī)啟動(dòng) chkconfig iptables off
創(chuàng)建mysql遠(yuǎn)程登陸賬號(hào)?
mysql -u root -p
create user 'daxiang'@'%' identified by '密碼';
grant select,delete,update,insert (all) on*.* (mysql.user) to 'daxiang'@'%' identified by '密碼';
flush privileges;