1.CentOS7一般會自帶數據庫 mariadb,MariaDB數據庫管理系統是MySQL的一個分支,完全兼容mysql但這會影響我們安裝mysql,所以在安裝mysql前,要把mariadb刪除乾淨
執行如下命令查看是否有安裝 mariadb
# rpm -qa|grep mariadb
我的系統上顯示已安裝
mariadb-libs-5.5.56-2.el7.x86_64
需要執行如下命令卸載刪除
# yum remove mariadb-libs-5.5.56-2.el7.x86_64
2.上傳mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 到 目錄 /usr/local
執行如下命令解壓文件; 並重命名解壓後的目錄爲 mysql; 完成後目錄爲 /usr/local/mysql
# tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
3.執行如下命令添加mysql用戶組和用戶
# groupadd mysql;
# useradd -r -g mysql mysql
4.壓縮包解壓后里面有個目錄是data,即/usr/local/mysql/data,我們就用該目錄存放數據庫數據
5.執行如下命令授權 /usr/local/mysql 目錄給用戶 mysql
# chown -R mysql:mysql /usr/local/mysql
6.執行如下命令初始化數據庫
進入mysql目錄
# cd /usr/local/mysql
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
******有警告
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
意思是explicit_defaults_for_timestamp 不推薦默認,所以最好加上該參數值的設置
改初始化命令如下
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp=true
******有報錯
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
需要先初始化權限相關等數據庫表
執行如下命令
#./scripts/mysql_install_db --user=mysql (注意此命令在/usr/local/mysql目錄下執行)
執行成功,此時可以看到/usr/local/mysql目錄下生成了my.cnf 文件
此時再執行
#./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp=true
最後顯示
./bin/mysqld: ready for connections.
Version: '5.6.40' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
表示數據庫安裝啓動成功
此時再打開一個ssh會話,登錄到服務器
執行如下命令
# cd /usr/local/mysql
# ./bin/mysql
顯示不需要密碼就可以鏈接上mysql服務器,說明mysql服務器安裝成功。
7.如下方法 關閉上一步中成功啓動起來的mysql服務器,
查找mysql服務器的進程
# ps -ef | grep mysql
顯示如上圖 6210 就是已運行的mysql的進程id
# kill 6210
此時如果執行 service mysql start 命令,仍舊不能成功啓動 mysql服務器,顯示報錯
Redirecting to /bin/systemctl start mysql.service
Failed to start mysql.service: Unit not found.
這是因爲 /etc/init.d 中沒有 mysql 的服務
執行如下命令,複製的同時重命名
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然後執行
# service mysql start
顯示
Starting MySQL. SUCCESS!
mysql服務成功啓動
另外,也可以用 service mysql stop 來停止mysql服務器了
8.給mysql root用戶設置密碼
上面安裝成功的 mysql 不需要密碼就可以登錄
下面給mysql 的root用戶設置密碼
# mysql
# use mysql
# update user set password=password('pwd') where user='root'; (pwd是密碼明文)
# flush privileges;
# exit;
此時再輸入mysql 已經不能登錄mysql服務器了,需要用戶名和密碼了
# mysql -u root -p
按提示輸入密碼即可登錄
mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 下載 https://pan.baidu.com/s/195cYwF9TtM7GA2HLlcIRKg