廢話不多說,雖然可以通過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"