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
(https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz --最新地址)
(http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz)
tar -zxvf 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/* /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. 編譯安裝
yum install -y perl-Module-Install
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
如果在/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 =
log_bin = /data/mysql/error.log
pid-file=/data/mysql/pid_file.pid
# 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
key_buffer=16K
table_open_cache=4
query_cache_limit=256K
query_cache_size=4M
max_allowed_packet=1M
sort_buffer_size=64K
read_buffer_size=256K
thread_stack=64K
innodb_buffer_pool_size = 56M
# 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 -uroot -p
show databases;
17. Linux下修改Mysql的用戶(root)的密碼 (第一次進入不需要密碼,直接mysql -uroot -p 進來該密碼)
通過登錄mysql系統,
# mysql -uroot -p
Enter password: 【輸入原來的密碼】 (下面的passedorD("test")表示數據庫密碼)
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
# 遠程登錄密碼 (下面的test表示數據庫密碼)
mysql>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'test';
mysql> flush privileges;
mysql> exit;
--------------------------------------------下面是mysql二進制源碼包下載地址------------------------------------------------------------------------------------
下載地址: https://dev.mysql.com/downloads/mysql/5.6.html#downloads
--------------------------------------問題一--------------------------------------------------------------
出現如下問題,在/data/mysql 下創建個 VM_0_3_centos.pid 1: (touch VM_0_3_centos.pid)
2 然后去 apache 下重啟apache 之后 /data/mysql/ 下的VM_0_3_centos.pid用戶名,用戶組,改變了,重啟msyql,創建VM_0_3_centos.pid就不會消失,死活創建不了
cd /usr/local/apache/bin/
./apachectl start