日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

CentOS 6.5 源码安装 mysql 5.6

發布時間:2025/6/16 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS 6.5 源码安装 mysql 5.6 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

參見?mysql 文檔

CentOS 6.5下通過yum安裝的MySQL是5.1版的,比較老,所以就想通過源代碼安裝高版本的5.6.40。

1. 卸載舊版本

使用下面的命令檢查是否安裝有MySQL Server????

rpm -qa | grep mysql

如果有的話通過下面的命令來卸載掉

普通刪除模式

rpm -e mysql ??

強力刪除模式 : 如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除

rpm -e --nodeps mysql ? ?

2. 添加組和用戶及安裝目錄權限????

#添加組 sudo groupadd mysql #創建用戶mysql并加入到mysql組,不允許mysql用戶直接登錄系統 sudo useradd -g mysql mysql -s /bin/false?#創建MySQL安裝目錄 sudo mkdir?-p?/usr/local/mysql #創建MySQL安裝目錄 sudo mkdir?-p?/usr/local/mysql/data #設置MySQL數據庫目錄權限 sudo chown -R mysql:mysql /usr/local/mysql/data

3. 安裝MySQL

yum -y install make gcc-c++ cmake bison-devel ?ncurses-devel

mysql下載地址

記住下載的是源碼包:

源碼包的名稱為 : mysql-5.6.40.tar.gz

如果你現在的包名為 : mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 說明下載的為編譯版。

#解壓縮 tar xvf mysql-5.6.14.tar.gz#進入mysql目錄 cd mysql-5.6.14

運行cmake命令:

cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci

????注:如果cmake過程中出錯,需要刪除 CmakeCache.txt文件 -->? rm -f CmakeCache.txt

編譯安裝:

make && make install

????注:出錯后重新運行配置,需要刪除 CMakeCache.txt文件

# make clean? # 刪除 CMakeCache.txt 文件 rm -f CMakeCache.txt?

????編譯的過程中 如果安裝的是 mysql5.7, 卡在 geofunc.cc.o 獲取其他地方 可能是內存不足,需要重新設置內存大小,(可以給2-4G 就沒有問題了) 重新編譯和安裝

????編譯參數參考?5.7??5.6

4. 多實例配置

????創建多個實例,其實就是把DATA文件,SOCK,? PORT指向不同的文件和端口,安裝過程與單例安裝相同,此處以mysql5.6為例

創建不同的實例目錄:dbdata_3306?dbdata_3307?dbdata_3308

/usr/local/mysql/data/dbdata_3306/usr/local/mysql/data/dbdata_3307/usr/local/mysql/data/dbdata_3308

注:也可以在/data目錄下創建,個人喜好

初始化配置:

#進入安裝路徑 cd /usr/local/mysql#進入安裝路徑,執行初始化配置腳本,創建系統自帶的數據庫和表, 分別執行下面三條命令 scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/dbdata_3306 --user=mysqlscripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/dbdata_3307 --user=mysqlscripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/dbdata_3308 --user=mysql

編輯/etc/my.cnf (如果沒有從mysql目錄拷貝)?

????用mysqld_multi工具查看該配置文件的模板,命令為:mysqld_multi --example

[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin user = admin password = password [mysqld1] socket = /usr/local/mysql/data/dbdata_3306/mysql3306.sock port = 3306 pid-file = /usr/local/mysql/data/dbdata_3306/mysql3306.piddatadir = /usr/local/mysql/data/dbdata_3306 #language = /usr/local/mysql/share/mysql/english user = mysql [mysqld2] socket = /usr/local/mysql/data/dbdata_3307/mysql3307.sock port = 3307 pid-file = /usr/local/mysql/data/dbdata_3307/mysql3307.piddatadir = /usr/local/mysql/data/dbdata_3307 #language = /usr/local/mysql/share/mysql/english user = mysql [mysqld3] socket = /usr/local/mysql/data/dbdata_3308/mysql3308.sock port = 3308 pid-file = /usr/local/mysql/data/dbdata_3308/mysql3308.pid datadir = /usr/local/mysql/data/dbdata_3308 #language = /usr/local/mysql/share/mysql/english user = mysql

5. mysql 啟動 關閉 其他設置

查看mysql運行狀態

/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf report #或 /usr/local/mysql/bin/mysqld_multi report

????注:詳見--defaults-file ?--defaults-extra-file 等區別,此處省略該項 直接report即可

如果執行 /usr/local/mysql/bin/mysqld_multi?有提示錯誤:

my_print_defaults command not found.Please make sure you have this command available andin your path. The command is available from the latest MySQL distribution.

ABORT: Can't find command 'my_print_defaults'.This command is available from the latest MySQL,distribution. Please make sure you have the command in your PATH.

就是沒有設置mysql 的環境變量

[root@localhost data]# vim /etc/profile

在文件末尾處添加

export PATH=/usr/local/mysql/bin:$PATH

然后執行命令

[root@localhost data]# source /etc/profile

如果沒有啟動,則啟動mysql

/usr/local/mysql/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf start #或 /usr/local/mysql/bin/mysqld_multi start #或 mysqld_safe --user=mysql --datadir=/usr/local/mysql/data/dbdata_3306 --port=3306 --socket=/usr/local/mysql/data/dbdata_3306/mysql3306.sock &

start后不跟序號,則代表啟動全部實例,如果想啟動某一個或某些實例:

/usr/local/mysql/bin/mysqld_multi ?start 1

查看相應端口是否已經被監聽 ?

netstat -tunlp ?| grep mysql

查看是否有活動進程 ?

ps -aux | grep mysql?

登陸數據庫 這里已3306端口的數據可為例

mysql -uroot -p -h127.0.0.1 -P3306 ? #或通過sock文件登陸 mysql -uroot -p -S /usr/local/mysql/data/dbdata_3306/mysql3306.sock #或通過sock文件登陸 mysqladmin -uroot -p -S /usr/local/mysql/data/dbdata_3306/mysql3306.sock

????提示輸入密碼時,回車即可,默認root無密碼

查看socket文件

mysql> SHOW VARIABLES LIKE 'socket'; ?

查看pid文件 ?

mysql> SHOW VARIABLES LIKE '%pid%';?

查看數據,確認 用的mysql_330?哪個文件夾的數據

mysql>show variables like '%datadir%';

設置root用戶本地密碼

mysql> SET PASSWORD = PASSWORD('123456'); #或 (下面的更直觀一些) set password for root@localhost = password('123456');

設置root用戶遠程訪問權限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Tgn2788210' WITH GRANT OPTION;

????注: Tgn2788210為遠程訪問時root用戶的密碼,可以和本地不同。

添加用戶,給予關閉權限(用于關閉數據庫)?

#該用戶的賬號admin與密碼password 與 /etc/my.cnf中[mysqld_multi]相同 用于關閉數據庫 mysql> GRANT SHUTDOWN ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password';#生效 mysql> flush privileges;

????注: 3307 3308 端口的數據可 使用相同的方式 設置root用戶 與 關閉數據庫的用戶admin

????注: 登錄后應當首先設置root密碼,處于安全考慮,還需要刪除系統中沒有密碼的帳號

mysql> use mysql; mysql> delete from user where password is null or password = '';

關閉 mysql 數據庫????

#(推薦) mysqladmin?-uroot --port=3306 --socket=/usr/local/mysql/data/dbdata_3306/mysql3306.sock -p shutdown #或 mysqld_multi stop --password=password #或 不建議使用 killall mysqld

????注:使用musqld_multi stop關閉數據庫,需要事先設置有shutdown權限的賬戶和密碼,并寫入my.cnf文件中,參見 ?mysqld_multi stop is not working

6. 防火墻配置

????防火墻的3306端口默認沒有開啟,若要遠程訪問,需要開啟這個端口

vim /etc/sysconfig/iptables

????在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

#mysql 3306 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #mysql 3307 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT #mysql 3308 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3308 -j ACCEPT

????然后保存,并關閉該文件,在終端內運行下面的命令,刷新防火墻配置:

service iptables restart

7. 安裝 5.7版本 多實例 mysql

7.1 cmake 不同

cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DWITH_BOOST=/usr/local/boost/ \-DDEFAULT_COLLATION=utf8_general_ci

區別:

5.7 以后沒有這兩個選項

-DWITH_MEMORY_STORAGE_ENGINE=1 \? ?? -DWITH_READLINE=1 \

5.7 以后新增選項

-DWITH_BOOST=/usr/local/boost/boost_1_59_0

????直接手動下載在boost目錄中解壓,boost目錄需手動創建,如果出現?cmake編譯MySQL時報錯:the source directory "xxx" does not exist ,應該是空格與換行的問題, \ 代表換行。

????從mysql 5.7.5以后Boost庫是必需的,下載Boost庫,在解壓后復制到/usr/local/boost目錄下?然后重新cmake并在后面的選項中加上選項 -DWITH_BOOST=/usr/local/boost ?可以到?boost下載,如果沒有,會報 參見-->?cmakeError

7.2 初始化數據庫?命令不同

5.7版本 使用 mysqld命令進行初始化

mysqld ?--initialize --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/dbdata_3306 --user=mysql

????注:在初始化時如果加上?--initial-insecure,則會創建空密碼的 root@localhost?賬號,否則會創建帶密碼的 root@localhost?賬號,密碼直接寫在 log-error 日志文件中(在5.6版本中是放在 ~/.mysql_secret 文件里,更加隱蔽,不熟悉的話可能會無所適從)????

? ? 參考文檔?https://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html

8. mysql 5.6 ?5.7 單實例安裝

????1.? 不需要創建 dbdata_3306等實例目錄,初始化時 直接使用/usr/local/mysql/data 即可

????2. 不需要使用/etc/my.cnf 文件

????在啟動MySQL服務時,會按照一定次序搜索my.cnf,首先會先在/etc目錄下找該文件,找不到則會搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置文件的默認位置;在CentOS 6.5版操作系統的最小安裝完成后,在/etc目錄下會存在一個my.cnf,需要將此文件更名為其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啟動。

????在使用"yum update"更新系統后,需要檢查下/etc目錄下是否會多出一個my.cnf,如果多出,將它重命名成別的。否則,MySQL將使用這個配置文件啟動,可能造成無法正常啟動等問題。

? ? 3. 啟動mysql

????添加服務,拷貝服務腳本到init.d目錄,并設置開機啟動

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

????chkconfig mysql on

????service mysql start ?-- 啟動MySQL

????推薦使用修改 rc.local 文件

9. mysql 編譯版安裝(可單實例,可多實例)

????1. 下載編譯版 mysql 解壓,移動,重命名

tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gzmv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql

????2. 創建 linux 用戶 -->? mysql 并賦予該用戶相應權限

????3. 初始化 mysql (如果是多實例安裝,提前創建多實例目錄 dbdata_3306 等)

10. 多實例mysql 開機自啟動

????修改rc.local文件,添加以下內容

/usr/local/mysql/bin/auto-startup.sh

????auto-startup.sh 內容為?

export PATH=/usr/local/mysql/bin:$PATH/usr/local/mysql/bin/mysqld_multi?--defaults-extra-file=/etc/my.cnf??start?

? ? 必須引入環境變量,否則報錯,具體信息可以改變 rc.local腳本

/usr/local/mysql/bin/auto-startup.sh >> /root/debug.txt

?

轉載于:https://my.oschina.net/grubby/blog/1801028

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的CentOS 6.5 源码安装 mysql 5.6的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。