Centos中源码安装mysql
源碼安裝mysql5.7
1、清理環境:
如是新環境可不執行刪除用戶及文件配置
#yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y #userdel -r mysql #rm -rf /etc/my* #rm -rf /var/lib/mysql2、創建mysql用戶
[root@mysql-server ~]# useradd -r mysql -M -s /bin/false3、從官網下載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、創建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,因為高版本mysql需要boots庫的安裝才可以正常運行。否則會報CMake Error at cmake/boost.cmake:81錯誤,安裝包里面自帶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也可以使用如下指令自動下載,如果不下載boost壓縮包,把下面的這一條添加到配置中第二行
-DDOWNLOAD_BOOST=1/
參數詳解:
-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 \ 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 默認的存儲引擎,支持外鍵
如果安裝出錯,想重新安裝:
不用重新解壓,只需要刪除安裝目錄中的緩存文件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(
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-E78UtPwx-1642749610299)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1595835348488.png)]
初始化,只需要初始化一次
9、啟動mysql
[root@mysql-server ~]# cd /usr/local/mysql [root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(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、添加環境變量
[root@mysql-server mysql]# vim /etc/profile ---添加如下 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin [root@mysql-server mysql]# source /etc/profile之后就可以在任何地方使用mysql命令登陸Mysql服務器:
13、配置mysqld服務的管理工具:
[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先將原來的進程殺掉
[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數據庫編譯安裝完成
14、mysql腳本簡寫
shell中使用
#!/bin/bash #開頭寫set -e set -e #結尾寫set +e 判斷執行失敗退出 set +emysql腳本如下:
#!/usr/bin/bashecho '清理mariadb環境' yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &> /dev/nullecho '創建新的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所需的環境' yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake &> /dev/nullecho '創建所需的目錄' mkdir -p /usr/local/{data,mysql,log}echo '解壓mysql程序' tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/ &> /dev/nullecho '預編譯' 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預編譯完成" >> /root/init.log elseecho "mysql預編譯失敗" >> /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 "配置環境變量" echo 'PATH=$PATH:$HOME/bin:/usr/local/mysql/bin' >> /etc/profile source /etc/profileecho "配置mysql管理工具,并開機自啟" cd /usr/local/mysql/support-files/ cp mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld onecho "啟動mysql" /etc/init.d/mysqld startecho "查看端口" yum -y install net-tools netstat -lntp | grep mysql >> /root/init.logecho "關閉mysql" /etc/init.d/mysqld stop總結
以上是生活随笔為你收集整理的Centos中源码安装mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php openoffice,php实现
- 下一篇: bochs上网镜像怎么上网_【bochs