CentOS 6.7下MySQL 5.6原始碼編譯安裝

luashin發表於2016-04-04
簡介:
多餘的話不說,就是原始碼安裝 MySQL 5.6,機器記憶體512 MB,系統CentOS 6.7,安裝方式 minimal !

1、安裝底層支援包
shell > yum -y install gcc gcc-c++ wget make cmake ncurses-devel bison

2、建立使用者、組
shell > useradd -r mysql

3、下載、安裝Mysql
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/
## 下載地址

ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
shell > cd /usr/local/src
shell > tar zxf mysql-5.6.25.tar.gz
shell > cd mysql-5.6.25
shell > cmake .
shell > make && make install
## Cmake 引數參考地址:http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
-DCMAKE_INSTALL_PREFIX=dir_name         ## Mysql 安裝位置( 預設位置 )
-DMYSQL_DATADIR=dir_name                ## Mysql 資料庫存放位置
-DMYSQL_TCP_PORT=port                   ## Mysql 監聽埠
-DDEFAULT_CHARSET=utf8                  ## Mysql 資料庫預設字符集
-DSYSCONFDIR=dir_name                   ## Mysql 配置檔案存放位置
-DMYSQL_UNIX_ADDR=/tmp/mysql_v5.sock    ## SOCK 檔案存放位置

## 等等... 還有好多,不一一列舉了。cmake .表示使用預設設定,可以看參考地址中的default選項
shell > cd /usr/local/
shell > chown -R root:mysql mysql/
shell > chown -R mysql mysql/data/
shell > cp mysql/support-files/mysql.server /etc/init.d/mysqld
shell > cp mysql/support-files/my-default.cnf /etc/my.cnf
shell > ./mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
shell > cd
shell > echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
shell > source /etc/profile

4、啟動 Mysql
shell > service mysqld start
shell > netstat -lnpt | grep 3306
tcp 0 0 :::3306 :::* LISTEN 16206/mysqld
## 可以看到已經啟動成功
## 下面這是我上次在阿里雲主機上部署 Mysql ,啟動時報的錯:
Starting MySQL...The server quit without updating PID file [FAILED]cal/mysql/data/Mysql.com.pid).
## 無法啟動,日誌中報錯大致意思為記憶體不足( 需要大於/等於 1G )~~ 這次沒有問題..
## 後來我找了一個 Mysql 5.5 版本中提供的小記憶體的配置檔案,就可以啟動了!

5、安裝完成,測試
shell > mysql  ## 第一次登陸直接輸入 mysql 命令即可登陸( 我記得 5.6 預設會有 root 密碼的,存放在 root 使用者下一個隱藏檔案中,這次沒有~~ )
shell > mysqladmin -uroot -p password 888888 ## 888888 為設定的新密碼,下面直接回車
Enter password:
Warning: Using a password on the command line interface can be insecure. ## 修改密碼,輸出一個警告資訊,提示密碼放在命令列不安全~~
shell > mysql -uroot -p888888  ## 再次登陸 Mysql
mysql> update mysql.user set password=password('123456') where user='root';
Query OK, 4 rows affected (0.05 sec)
Rows matched: 4 Changed: 4 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

## 第二種修改密碼的方式
mysql> grant all on *.* to root@'%' identified by '666'; ## 授權 root 使用者可以從任意地址登陸,密碼為 666
Query OK, 0 rows affected (0.04 sec)

shell > mysql -uroot -h 192.168.214.20 -p666
## grant 這種操作不需要執行 flush 操作,不過建議還是 flush 一下比較好~~
## 忘記 root 密碼時的解決步驟
shell > /etc/init.d/mysqld stop
shell > /usr/local/mysql/bin/mysqld_safe --skip-grant-table & ## 跳過授權表啟動 Mysql
shell > mysql ## 又可以歡快的無密碼登陸資料庫了~~
mysql> update mysql.user set password=password('123456') where user='root';
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2074923/,如需轉載,請註明出處,否則將追究法律責任。

相關文章