Centos中源码安装mysql
源碼安裝mysql5.7
1、清理環(huán)境:
如是新環(huán)境可不執(zhí)行刪除用戶及文件配置
#yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y #userdel -r mysql #rm -rf /etc/my* #rm -rf /var/lib/mysql2、創(chuàng)建mysql用戶
[root@mysql-server ~]# useradd -r mysql -M -s /bin/false3、從官網(wǎng)下載tar包
#yum -y install wget #wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz4、安裝編譯工具
#yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make #yum -y install cmake5、創(chuàng)建mysql目錄
[root@mysql-server ~]# mkdir -p /usr/local/{data,mysql,log}6、解壓
[root@mysql-server ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/注:如果安裝的MySQL5.7及以上的版本,在編譯安裝之前需要安裝boost,因?yàn)楦甙姹緈ysql需要boots庫的安裝才可以正常運(yùn)行。否則會(huì)報(bào)CMake Error at cmake/boost.cmake:81錯(cuò)誤,安裝包里面自帶boost包
7、編譯安裝
cd 解壓的mysql目錄
[root@mysql-server ~]# cd /usr/local/mysql-5.7.27/ [root@mysql-server mysql-5.7.27]#cmake . \ -DWITH_BOOST=boost/boost_1_59_0/ \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DINSTALL_MANDIR=/usr/share/man \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1提示:boost也可以使用如下指令自動(dòng)下載,如果不下載boost壓縮包,把下面的這一條添加到配置中第二行
-DDOWNLOAD_BOOST=1/
參數(shù)詳解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安裝目錄
-DSYSCONFDIR=/etc \ 配置文件存放 (默認(rèn)可以不安裝配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ 數(shù)據(jù)目錄 錯(cuò)誤日志文件也會(huì)在這個(gè)目錄
-DINSTALL_MANDIR=/usr/share/man \ 幫助文檔
-DMYSQL_TCP_PORT=3306 \ 默認(rèn)端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,用來做網(wǎng)絡(luò)通信的,客戶端連接服務(wù)器的
時(shí)候用
-DDEFAULT_CHARSET=utf8 \ 默認(rèn)字符集。字符集的支持,可以調(diào)
-DEXTRA_CHARSETS=all \ 擴(kuò)展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \ 支持的
-DWITH_READLINE=1 \ 上下翻歷史命令
-DWITH_SSL=system \ 使用私鑰和證書登陸(公鑰) 可以加密。 適用與長連接。壞處:速度慢
-DWITH_EMBEDDED_SERVER=1 \ 嵌入式數(shù)據(jù)庫
-DENABLED_LOCAL_INFILE=1 \ 從本地倒入數(shù)據(jù),不是備份和恢復(fù)。
-DWITH_INNOBASE_STORAGE_ENGINE=1 默認(rèn)的存儲(chǔ)引擎,支持外鍵
如果安裝出錯(cuò),想重新安裝:
不用重新解壓,只需要?jiǎng)h除安裝目錄中的緩存文件CMakeCache.txt
8、初始化
[root@mysql-server mysql-5.7.27]# cd /usr/local/mysql [root@mysql-server mysql]# chown -R mysql.mysql . [root@mysql-server mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data—初始化完成之后,一定要記住提示最后的密碼用于登陸或者修改密碼
qtwcNAX5g#X(
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-E78UtPwx-1642749610299)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1595835348488.png)]
初始化,只需要初始化一次
9、啟動(dòng)mysql
[root@mysql-server ~]# cd /usr/local/mysql [root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-PKjw7R4O-1642749610300)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1595835444499.png)]
10、登錄mysql
[root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.27 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit11、修改密碼
[root@mysql-server mysql]# /usr/local/mysql/bin/mysqladmin -u root -p'GP9TKGgY9i/8' password '192412Wei' mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.12、添加環(huán)境變量
[root@mysql-server mysql]# vim /etc/profile ---添加如下 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin [root@mysql-server mysql]# source /etc/profile之后就可以在任何地方使用mysql命令登陸Mysql服務(wù)器:
13、配置mysqld服務(wù)的管理工具:
[root@mysql-server mysql]# cd /usr/local/mysql/support-files/ [root@mysql-server support-files]# cp mysql.server /etc/init.d/mysqld [root@mysql-server support-files]# chkconfig --add mysqld [root@mysql-server support-files]# chkconfig mysqld on先將原來的進(jìn)程殺掉
[root@mysql-server ~]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! [root@mysql-server ~]# netstat -lntpActive Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1087/sshd tcp6 0 0 :::22 :::* LISTEN 1087/sshd tcp6 0 0 :::3306 :::* LISTEN 31249/mysqld[root@mysql-server ~]# /etc/init.d/mysqld stop數(shù)據(jù)庫編譯安裝完成
14、mysql腳本簡寫
shell中使用
#!/bin/bash #開頭寫set -e set -e #結(jié)尾寫set +e 判斷執(zhí)行失敗退出 set +emysql腳本如下:
#!/usr/bin/bashecho '清理mariadb環(huán)境' yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &> /dev/nullecho '創(chuàng)建新的mysql用戶' userdel -r mysql useradd -r mysql -M -s /bin/falseecho '下載mysql' yum -y install wget &> /dev/null wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz &> /dev/null if [ $? -eq 0 ]; thenecho "mysql-boot下載成功" >> /root/init.log elseecho "mysql-boot下載失敗" >> /root/init.log fiecho '安裝mysql所需的環(huán)境' yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake &> /dev/nullecho '創(chuàng)建所需的目錄' mkdir -p /usr/local/{data,mysql,log}echo '解壓mysql程序' tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/ &> /dev/nullecho '預(yù)編譯' cd /usr/local/mysql-5.7.27/ cmake . \ -DWITH_BOOST=boost/boost_1_59_0/ \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DINSTALL_MANDIR=/usr/share/man \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 if [ $? -eq 0 ]; thenecho "mysql預(yù)編譯完成" >> /root/init.log elseecho "mysql預(yù)編譯失敗" >> /root/init.log fiecho '編譯與安裝' make && make install if [ $? -eq 0 ]; thenecho "編譯與安裝完成" >> /root/init.log elseecho "編譯與安裝失敗" >> /root/init.log fiecho '初始化mysql,保存文件在root下的init.log中' cd /usr/local/mysql chown -R mysql.mysql ../bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data >> /root/init.log if [ $? -eq 0 ]; thenecho "初始化成功" >> /root/init.log elseecho "初始化失敗" >> /root/init.log fiecho "配置mysql配置文件" cat >/etc/my.cnf<<EOF [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data EOFecho "配置環(huán)境變量" echo 'PATH=$PATH:$HOME/bin:/usr/local/mysql/bin' >> /etc/profile source /etc/profileecho "配置mysql管理工具,并開機(jī)自啟" cd /usr/local/mysql/support-files/ cp mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld onecho "啟動(dòng)mysql" /etc/init.d/mysqld startecho "查看端口" yum -y install net-tools netstat -lntp | grep mysql >> /root/init.logecho "關(guān)閉mysql" /etc/init.d/mysqld stop總結(jié)
以上是生活随笔為你收集整理的Centos中源码安装mysql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php openoffice,php实现
- 下一篇: linux cmake编译源码,linu