從零搭建LNMP環境(三) - 安裝MySQL數據庫服務器

廢話很少說,雖然能夠經過yum直接安裝MySQL,可是爲了可以對安裝過程有一個比較清晰的認識, 咱們這裏仍是使用源碼編譯安裝。mysql

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.21.tar.gz
$ tar -zxvf mysql-5.6.21.tar.gz
$ cd mysql-5.6.21

文件已經下載而且解壓好了,在安裝以前,咱們須要爲mysql創建名爲mysql的用戶名和用戶組。c++

$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql

創建好用戶名和組以後,就能夠進行編譯安裝了sql

$ cmake .
$ make
$ sudo make install

編譯過程比較漫長,耐心一點shell

若是沒有安裝cmake,則須要先安裝數據庫

$ sudo yum install cmake
$ sudo yum install gcc-c++

若是提示安全

Warning: Bison executable not found in PATH

則須要安裝bisonbash

$ sudo yum install bison

若是出現如下錯誤app

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

則須要安裝dom

$ sudo yum install ncurses-devel

通過漫長的編譯過程,咱們的mysql終於安裝到了/usr/local/mysql目錄,接下來,咱們須要對mysql 進行相應的配置,使得mysql變得可用。es5

$ cd /usr/local/mysql/
$ sudo chown -R mysql .
$ sudo chgrp -R mysql .
$ sudo scripts/mysql_install_db --user=mysql

這裏的mysql_install_db腳本只有在手動編譯安裝mysql的時候須要,該腳本爲mysql創建了受權表。

大多數的mysql安裝是屬於root用戶的,可是必須保證data目錄是數據mysql用戶。

$ sudo chown -R root .
$ sudo chown -R mysql data

最後,咱們須要建立mysql的配置文件

$ sudo cp support-files/my-default.cnf /etc/my.cnf

####配置MySQL開機啓動 若是但願在系統啓動的時候mysql也可以自動的啓動,能夠執行下面的命令

$ sudo cp support-files/mysql.server /etc/init.d/mysql.server
$ sudo chmod u+x /etc/init.d/mysql.server
$ sudo chkconfig --add mysql.server

執行chkconfig |grep mysql看到以下,特別是運行級別3爲啓用,則說明設置成功。

$ chkconfig |grep mysql
mysql.server   	0:關閉	1:關閉	2:啓用	3:啓用	4:啓用	5:啓用	6:關閉

能夠經過mysql.server腳本啓動和關閉mysql。

$ sudo /etc/init.d/mysql.server [start|stop]

若是要手動操做的話,啓動mysql的話使用命令:

$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

關閉mysql:

$ ./mysqladmin -u root shutdown

####修改root帳號密碼

新安裝的mysql數據庫的root帳號是沒有設置密碼的,所以,全部人均可以進行訪問,爲了安全起見, 咱們須要爲root帳號設置一個密碼。

$ /usr/local/mysql/bin/mysql -uroot
mysql> SELECT User, Host, Password FROM mysql.user;
+------+-----------------------+----------+
| User | Host                  | Password |
+------+-----------------------+----------+
| root | localhost             |          |
| root | localhost.localdomain |          |
| root | 127.0.0.1             |          |
| root | ::1                   |          |
|      | localhost             |          |
|      | localhost.localdomain |          |
+------+-----------------------+----------+
6 rows in set (0.00 sec)

這裏User一列爲空的是匿名用戶信息,使用mysql直接登錄的時候,沒有提供帳號的話, 就會以該用戶的身份登錄數據庫,若是不須要該用戶的話,能夠刪除掉該用戶信息。

mysql> DROP USER ''@'localhost';
mysql> DROP USER ''@'localhost.localdomain';

一般咱們有三種方式爲mysql用戶設置密碼:

第一種方式是使用SET PASSWORD,使用該指令,咱們須要登錄到mysql。

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('root');
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('root');
Query OK, 0 rows affected (0.00 sec)

第二種方式更加直接,使用UPDATA直接修改數據表。

mysql> UPDATE mysql.user SET Password = PASSWORD('root') WHERE User = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 4  Changed: 1  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

這裏的FLUSH語句讓數據庫從新加載受權表,不然須要等下次重啓才能生效。

第三種方式是使用mysqladmin命令,不過這種方式不能爲'root'@'127.0.0.1''root'@'::1' 修改密碼。

shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
相關文章
相關標籤/搜索