Linux/CentOS安装MySQL(RPM安装、编译安装)
2019獨角獸企業重金招聘Python工程師標準>>>
Linux/CentOS安裝MySQL(RPM安裝、編譯安裝)
目前最常用的MySQL安裝方法也就是采用Yum安裝RPM包,或者編譯安裝。這里將記錄關于在CentOS上安裝MySQL歷史版本的方法。
RPM安裝
這里使用CentOS系統,使用Yum快捷安裝解決依賴
添加RPM源
官方yum源歷史版本獲取地址
http://repo.mysql.com/yum/
最新版yum源獲取地址
http://dev.mysql.com/downloads/repo/yum/?
下載源1
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm下載源2
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm # 可以替換其中的發行版本序號下載指定的版本 wget http://dev.mysql.com/get/mysqlXX-community-release-elXX-XX.noarch.rpm安裝源
安裝RPM源
yum localinstall mysql57-community-release-el7-10.noarch.rpm驗證是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"卸載RPM源
rpm -qa|grep mysql rpm -e mysql57-community-release-el7-10.noarch更換默認安裝版本
MySQL官方默認源采用最新版本,可以通過修改RPM文件來實現。
官網文檔參照
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/#repo-qg-yum-select-series
推薦編輯文件來指定版本
vi /etc/yum.repos.d/mysql-community.repo安裝MySQL
yum install mysql-community-server啟動MySQL
systemctl start mysqld開機自啟
# 開啟 MySQL 服務自啟 systemctl enable mysqld # 重載所有修改過的配置文件 systemctl daemon-reload修改ROOT密碼
grep 'temporary password' /var/log/mysqld.log ALTER USER 'root'@'localhost' IDENTIFIED BY '\39hIgAmA3w8L61_';開啟遠程權限
方便用戶遠程操作,安全性不推薦自行把握。可以設定指定IP訪問。
新增用戶ROOT用戶方式
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '\39hIgAmA3w8L61_' WITH GRANT OPTION;修改Host字段方式
update mysql.user set host='%' where user='root' and host='localhost' LIMIT 1; flush privileges;?
編譯安裝
針對更多個性化的配置,配置多個版本共存時推薦的方式。
獲取對應版本
mysql社區版服務端?下https://downloads.mysql.com/archives/community/
在這里可以選擇mysql版本、類型、支持系統。
這里選擇版本是5.5.4(其他版本大致相同),在linux系下運行的源碼。
下載并解壓進入其目錄
wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.40.tar.gz tar -xzf mysql-5.5.40.tar.gz cd mysql-5.5.40?
預編譯配置
使用 cmake 進行編譯,如果未安裝,請安裝cmake及相關依賴庫。
yum install -y cmake gcc g++ make m4 bison ncurses-devel創建構造目錄
mkdir build cd build?
參數說明:
- 默認安裝的位置是 /usr/local/mysql/,如果需要修改可以指定他為其他路徑位置。? ? ? ? ? ? ? ? ? ? ? ? 例如:?#?cmake . -DCMAKE_INSTALL_PREFIX=your_custom_location
- 默認安裝的數據目錄是?/usr/local/mysql/data/,你可以通過修改?MYSQL_DATADIR 選項來修改路徑。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例如:?#?cmake . -DMYSQL_DATADIR=your_custom_location
- 編譯更多配置參考MySQL官網文檔?https://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html
?
編譯
make && make install?
編譯后初始化配置工作
useradd mysql groupadd mysql cd /usr/local/mysql/mysql5.5 chown -R mysql . chgrp -R mysql .#二選一命令 #1. scripts/mysql_install_db --user=mysql chown -R root . #2. scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/mysql5.5 --datadir=/mnt/data/mysql/mysql5.5 --defaults-file=/usr/local/mysql/mysql5.5/my.cnf chown -R mysql /mnt/data/mysql/mysql5.5#復制配置文件 cp support-files/my-medium.cnf ./my.cnf#將服務啟動腳本復制到系統目錄 cp support-files/mysql.server /etc/init.d/mysqld chmod u+x /etc/init.d/mysqld chkconfig --add mysqld#刪除默認my.cnf rm -f /etc/my.cnf?
錯誤解決
Installation of system tables failed! Examine the logs in /var/lib/mysql for more information.https://serverfault.com/questions/523206/ubuntu-mysql-server-connection
sudo mv /var/lib/mysql /var/lib/mysql_bak sudo mysql_install_db sudo /etc/init.d/mysql start sudo netstat -anp | grep 3306還有就是socket文件的寫入權限,可通過 my.cnf 確定
socket = /tmp/mysqld55.sock touch?/tmp/mysqld55.sock chown mysql:mysql /tmp/mysqld55.sock chmod 775 /tmp/mysqld55.sock rm -f /tmp/mysqld55.sock刪除系統內置或殘留my.cnf
rm -f /etc/my.cnfhttp://blog.51cto.com/732233048/1636409
?
MySQL服務控制
啟動服務 service mysqld start
關閉服務 service mysqld stop
重啟服務 service mysqld restart
?
修改root密碼
首先啟動mysql服務
service mysqld start連接mysql
./bin/mysql#設置root新密碼(低版本mysql使用,5.7以后推薦使用ALTER 或者修改authentication_string字段) set password = password('root');#清除系統空用戶 use mysql; delete from user where user = ''; flush privileges;?
設置遠程訪問權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rootmima' WITH GRANT OPTION;?
?
轉載于:https://my.oschina.net/u/2366984/blog/2992772
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Linux/CentOS安装MySQL(RPM安装、编译安装)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssh: connect to host
- 下一篇: ES6之函数的扩展(二)