mysql是我們最常用的開源的關系型數據庫,mysql不同版本有時候安裝的方式也不盡相同,下面以mysql5.7.28版本為例梳理一下安裝細節:
1.下載mysql-5.7.28,URL:https://downloads.mysql.com/archives/community/ 我這里下載的是64位版本
下載后文件為:mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
2. 卸載自帶的mariadb和mysql
檢查是否安裝了mariadb和mysql,有時候默認安裝了
rpm -qa | grep mariadb rpm -qa | grep mysql
如果沒有,就可以安裝mysql,如果有,需要先卸載(remove后為上面命令查詢到的內容,全文件名,我這里沒有,沒法展示)
yum remove mariadb-xxx
3.解壓文件,修改目錄名方便配置
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/soft/
cd /opt/soft
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
4.在/usr/local/目錄下創建到/opt/soft/mysql-5.7.28的軟鏈接
cd /usr/local
ln -s /opt/soft/mysql-5.7.28 mysql
5.添加mysql用戶,修改mysql目錄權限,並用此用戶執行應用
useradd -s /bin/false -M mysql
cd /opt/soft
chown -R mysql:mysql mysql-5.7.28
6.拷貝配置文件,將mysql的配置文件拷貝為/etc/目錄下的my.cnf,並修改配置文件
vim /etc/my.cnf
[mysqld]
# binlog 配置
log-bin=/usr/local/mysql/logs/mysql-bin.log
expire-logs-days=14
max-binlog-size=500M
server-id=1
# GENERAL
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
default-storage-engine=InnoDB
character-set-server=utf8
lower_case_table_names = 1
explicit_defaults_for_timestamp=true
[mysqld_safe]
log-error=/usr/local/mysql/mysql-error.log
pid-file=/usr/local/mysql/mysqld.pid
[client]
socket=/usr/local/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
7.安裝mysql,進入mysql目錄執行以下命令
cd /opt/soft/mysql-5.7.28 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
如果出現如下錯誤,說明需要安裝依賴包:
安裝autoconf依賴包:
yum -y install autoconf
再次執行腳本
如果出現以下錯誤,說明在my.cnf中指定的binlog配置文件的logs文件夾不存在:
在/usr/local/mysql/下創建logs文件夾就行了,並改為mysql用戶
再次執行腳本
出現以下信息,代表成功,要保存一下密碼,
8.拷貝啟動程序,將mysql的啟動程序拷貝到/etc/init.d/目錄下
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
9.安裝完,啟動mysql服務
service mysqld start
如果出現如下錯誤:
[root@s144 support-files]# service mysqld start Starting MySQL.2020-01-31T23:14:27.412533Z mysqld_safe error: log-error set to '/usr/local/mysql/mysql-error.log', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file (/usr/local/mysql/data/s144.pid).
說明mysql-error.log不存在,手動去創建,並修改權限
cd /opt/soft/mysql-5.7.28 touch mysql-error.log chown mysql:mysql mysql-error.log
出現SUCCESS,說明啟動成功
10.配置環境變量,編輯/etc/profile,方便在任何地方用mysql命令
vim /etc/profile
#mysql
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
別忘記重新編譯 /etc/profile
source /etc/profile
11.登錄mysql,修改密碼
首次登錄沒有密碼,提示輸入密碼時,輸入第7步安裝時生成的密碼:p5j2jfX7am.h
mysql -uroot -p
這里要先使用alter user重置密碼,不然會報錯,我這里 修改mysql root用戶密碼 為 111111 :
mysql> alter user 'root'@'localhost' identified by '111111'; mysql> flush privileges;
至此本機登錄密碼修改完成,若是想讓其他機器訪問,需要配置遠程訪問:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;
使用遠程工具測試一下:
至此搭建mysql-5.7.28版本就完成了
12.一些常用命令
service mysqld start #啟動
service mysqld stop #關閉
service mysqld restart #重啟
service mysqld status #查看運行狀態