1. 程式人生 > >原始碼編譯安裝MySQL-5.6/mysql-5.6.39------踩了無數坑,重灌了十幾次伺服器才會的,不容易啊!

原始碼編譯安裝MySQL-5.6/mysql-5.6.39------踩了無數坑,重灌了十幾次伺服器才會的,不容易啊!

1.切換到src目錄

cd /usr/local/src/

 

2. 下載mysql免編譯二進位制包 

免編譯的mysql二進位制包5.6原始碼包:

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 

tar -zxvf http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz  

 

3. 把 mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz目錄下所有檔案   移到 /usr/local/mysql 位置

mv mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz/* /usr/local/mysql

 

4.建立MySql使用者,因為啟動MySQL需要改使用者

useradd -s  /sbin/nologin mysql

cd /usr/local/mysql

 

5.建立datadir,資料庫檔案會放到這裡面

mkdir -p /data/mysql 

 

6. 更改許可權,不更改後續操作就會出問題

chown  -R mysql:mysql  /data/mysql

 

7. yum install libaio* -y

二進位制安裝mysql初始化出現:Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared
原因:缺少libaio庫檔案
解決方法:yum install libaio* -y

 

8. yum -y install numactl

bin/mysqld: error while loading shared libraries: libnuma.so.1: 安裝mysql
如果安裝mysql出現了以上的報錯資訊.這是卻少numactl這個時候如果是Centos就yum -y install numactl就可以解決這個問題了.
ubuntu的就sudo apt-get install numactl就可以解決這個問題了

 

9.  編譯安裝

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

如果接下來你看到兩個ok,並且會在/data/mysql目錄下生成幾個檔案和目錄,說明執行成功;或者在執行完成最後一條命令後,馬上執行echo $? 看輸出結果是否為0

 

10. 首先賦值配置檔案,如下所示:

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

cp:是否覆蓋"/etc/my.cnf"? y

因為是系統預設就有/etc/my.cnf,所以會提示是否覆蓋,直接按"y"即可,

 

11. 修改配置檔案 ,如下所示:

vim /etc/my.cnf

 

---------------------------------------------------------------------------------------------------------------------------------------------

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin = ahui

# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 128

socket = /tmp/mysql.sock

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

----------------------------------------------------------------------------------------------------------------------

 

12. 然後複製啟動指令碼檔案並修改其屬性

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

 

13. 修改啟動指令碼

vim /etc/init.d/mysqld 

需要修改的地方有 datadir=/data/mysql

 

 

14. 把啟動指令碼加入系統服務項,設定開機並啟動mysql 

a . 把mysqld服務加入到系統服務列表中,

chkconfig --add mysqld

b .使其開機就啟動

chkconfig mysqld on

c .啟動服務

service mysqld start 

看見success,說明mysql已經啟動成功了

15. 看看有沒有監聽3306埠

netstat -lnp|grep 3306

 

16.進入mysql 

/usr/local/mysql/bin/mysql -u root

show databases;

 

17. Linux下修改Mysql的使用者(root)的密碼 (第一次進入需要密碼,直接mysql -uroot -p 進來該密碼)

通過登入mysql系統,
# mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;