Centos7.3.1611安裝mysql5.7.18 rpm教程 並設定datadir
一、解除安裝MariaDB
CentOS7預設安裝MariaDB而不是MySQL,而且yum伺服器上也移除了mysql相關的軟體包。因為MariaDB和MySQL可能會衝突,故先解除安裝MariaDB。
1. 安裝新版mysql之前,我們需要將系統自帶的mariadb-lib解除安裝
[[email protected] ~]# rpm -qa | grep -i mariadb mariadb-libs-5.5.52-1.el7.x86_64 [[email protected] ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
注:詳細解除安裝教程可自行百度,很簡單。
二、到mysql的官網下載最新版mysql的rpm集合包
mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
1. 通過xshell的rz命令將mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar上傳到Linux系統中。
注:我上傳到的路徑 /usr/local/tools
2. 通過mkdir命令建立mysql目錄,放入解壓後的檔案,為以後的安裝做準備。
3.解壓壓縮包到mysql目錄
四.安裝MySQL解壓包
注:所有解壓包,不一定需要全部安裝、注意安裝順序
以下是安裝順序 這幾個包由依賴關係。執行有先後其中,client依賴於libs,server依賴於common和client.
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm // <br> rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm //<br> rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm<br> rpm -ivh mysql-community-client-5.7.18-1.el6.x87_64.rpm //客戶端安裝包 <br> rpm -ivh mysql-community-server-5.7.18-1.el6.x87_64.rpm //服務端安裝包<br> rpm -ivh mysql-community-devel-5.7.18-1.el7.x87_64.rpm //包含開發用的庫標頭檔案安裝包<br>
注: i-install安裝;v-verbose進度條;h-hash雜湊校驗;安裝過程中可能會出現 perl 環境等問題,按提示百度就行。
五、資料庫初始化
1.為了保證資料庫目錄為與檔案的所有者為 mysql 登陸使用者,如果你的linux系統是以 root 身份執行 mysql 服務,需要執行下面的命令初始化
[[email protected] mysql]# mysqld --initialize --user=mysql
如果是以 mysql 身份登入執行,則可以去掉 –user 選項。
注: –initialize 選項預設以“安全”模式來初始化,則會為 root 使用者生成一個密碼並將該密碼標記為過期,登陸後你需要設定一個新的密碼
這裡演示使用的 –initialize 初始化的,會生成一個 root 賬戶密碼,密碼在log檔案裡,紅色區域的就是自動生成的密碼
使用 cat /var/log/mysqld.log
命令開啟日誌檔案
六、啟動mysql資料庫
注:systemctl是Centos7特有的啟動方式
systemctl start mysqld.service
七、登入mysql資料庫並建立Mysql新密碼
1.登入mysql,然後輸入日誌中的隨機密碼。
mysql -u root -p;
2.設定你的密碼。
set password = password('你的密碼');
3.設定授權(遠端訪問)
grant all privileges on *.* to 'root' @'%' identified by'你的密碼';
4.重新整理許可權
flush privileges;
(轉)
/charlie/software/mysql/data是我新建的MySQL目錄,修改資料夾許可權:sudo chown -R mysql:msyql /charlie/software/mysql/data
修改/etc/my.cnf檔案
[mysqld]
character_set_server=utf8
socket=/charlie/software/mysql/data/mysql.sock
datadir=/charlie/software/mysql/data
#socket=/var/lib/mysql/mysql.sock
#datadir=/var/lib/mysql
然後做一個mysql.sock 連結:
ln -s /charlie/software/mysql/data/mysql.sock /var/lib/mysql/mysql.sock
執行sudo systemctl start mysqld 會沒有反應。然後在/var/log/mysqld.log檢視日誌,ERR錯誤會有一個
Can't start server : Bind on unix socket: Permission denied這樣子的錯誤。
執行命令getenforce是不是出現的是Enforcing,如果是的話,執行setenforce 0 臨時關閉,就可以啟動MySQL。
然後執行sudo /usr/bin/mysql_secure_installation就可以設定了。
如果後面執行mysql相關命令出現:Can’t connect to local MySQL server through socket錯誤。
編輯/etc/my.cnf檔案新增
[mysql]socket=/charlie/software/mysql/data/mysql.sock
主要還是對Linux不熟悉,找了很久才發現有可能是selinux的原因。