編譯安裝Mysql5.6.36

系統環境:

[root@db02 3307]# uname -m
x86_64
[root@db02 3307]# uname -r
2.6.32-696.el6.x86_64
[root@db02 3307]# cat /etc/redhat-release 
CentOS release 6.9 (Final)

安裝依賴包:

yum -y install ncurses-devel libaio-devel cmake
rpm -qa ncurses-devel libaio-devel cmake

建立mysql管理用戶:

useradd -s /sbin/nologin -M mysql
id mysql

下載mysql源碼包,進行編譯安裝(耐心等待完成)

將源碼包下載到本地/server/tools/目錄下

mkdir -p /server/tools
mkdir -p /application
cd /server/tools/
# 下載源碼安裝包
wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz
# 下載相應的md5值,進行校驗安裝包是否完整
# md5sum -c md5sum.log  # 通常狀況,沒什麼問題,我就省略了此步驟

解壓

tar -zxf mysql-5.6.36.tar.gz
cd mysql-5.6.36

編譯安裝

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \
-DMYSQL_DATADIR=/application/mysql-5.6.36/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

檢查上一命令是否執行成功mysql

[root@db02 mysql-5.6.36]# echo $?
0
make && make install

建立軟連接,方便後期管理

ln -s /application/mysql-5.6.36/ /application/mysql

初始化及配置數據庫

# 將參數文件拷貝到/etc/目錄下,由於是編譯安裝,此條命令省略
cp support-files/my*.cnf /etc/my.cnf

# 初始化
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

# 讓mysql用戶進行管理,受權
chown -R mysql.mysql /application/mysql/

# mysql的啓動文件,拷貝到/etc/init.d/
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

# 賦予可執行的權限
chmod 700 /etc/init.d/mysqld

# 設置開機自啓動
chkconfig mysqld on

# 查看是否開機自啓動設置成功
chkconfig --list mysqld

# 啓動mysql服務
/etc/init.d/mysqld start

# 可能報錯(一)
Starting MySQL.180402 00:55:13 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/var/lib/mysql/db02.pid).
# 那麼你能夠查看如下/etc/my.cnf是不是以前安裝mysql時產生的文件,把它移動到/tmp目錄下,再次啓動mysql嘗試

/etc/init.d/mysqld start

# 可能報錯(二)
Starting MySQL.Logging to '/application/mysql-5.6.36/data/db02.err'.
180402 00:56:42 mysqld_safe Directory '/application/mysql-5.6.36/tmp' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db02.pid).
# 注:此時數據庫啓動會提示,找不到xx/tmp/mysql.sock,緣由是5.6.36版本不會自動建立tmp目錄

# 建立目錄tmp
mkdir /application/mysql/tmp

# 受權
chown -R mysql.mysql /application/mysql/

# 再次啓動
/etc/init.d/mysqld start  # 啓動成功

# 查看服務
netstat -lntup | grep 3306

將mysql的啓動目錄加入PATH中

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
tail -1 /etc/profile
source /etc/profile
echo $PATH
# 進入mysql數據庫,免密登陸,無密碼
mysql

設置密碼:

mysqladmin -u root -p password  'yk123'

修改密碼:

mysqladmin -u root -p password  '123'

使用用戶及密碼登錄mysql

mysql -uroot -p123
mysql -uroot -p

基本優化--清理用戶及無用數據庫

# 進入mysql數據庫
mysql -uroot -p123

# 查看mysql數據庫的user表的數據
select user,host,password from mysql.user;
# 刪除無用的數據
drop user 'root'@'db02';
drop user 'root'@'::1';
drop user ''@'localhost';
drop user ''@'db02';
# 查看數據
select user,host,password from mysql.user;

# 刪除數據庫test
drop database test;

# 查看數據庫
show databases;

注:讀者應根據自身的狀況進行操做,靈活應用!sql

若有錯誤,請指正,謝謝!數據庫

相關文章
相關標籤/搜索