簡介:
多余的話不說,就是源碼安裝 Mysql 5.6 ,機器內存 512 MB ,系統 CentOS 6.6 ,安裝方式 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)