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

廢話不多說,雖然可以通過yum直接安裝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的用戶名和用戶組。

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

建立好用戶名和組之後,就可以進行編譯安裝了

$ cmake .
$ make
$ sudo make install

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

如果沒有安裝cmake,則需要先安裝

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

如果提示

Warning: Bison executable not found in PATH

則需要安裝bison

$ sudo yum install bison

如果出現以下錯誤

-- 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.

則需要安裝

$ sudo yum install ncurses-devel

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

$ 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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章