Linux 阿里雲伺服器 CentOS 7 安裝 MySQL 5.7。
一、準備工作
1、MySQL 官網下載 MySQL 5.7.23 :mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
2、檢查是否已經安裝過 MySQL :
$> rpm -qa | grep mysql
如果已經安裝過其他版本的 MySQL,使用以下命令解除安裝:$> rpm -e 已經存在的MySQL全名
3、新增使用者組,用專門管理mysql,提高安全 (非必須,可以跳過 )
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
4、安裝libaio1 :
libaio1 是 MySQL 的安裝依賴 必須先安裝(前提條件)
$> yum install libaio-devel.x86_64
二、安裝
1、解壓 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 並移到 /usr/local/mysql 資料夾下:
$> tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local
$> mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql
$> chown -R mysql:mysql mysql
2、配置 MySQL 的服務,將 support-files 下的 mysql.server 複製到 /etc/init.d/ 下並取名mysql :
$> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
3、修改/etc/init.d/mysql的引數:
$> vi /etc/init.d/mysql
#修改如下內容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
4、配置 MySQL 的配置檔案,
其他版本mysql的support-files目錄下有預設的配置檔案,
5.7.23 這個版本沒有,需要自己準備,下面提供一份簡單基本配置,
在/etc/ 下新建my.cnf ,有些可能會提示已經存在,因為預設裝的資料庫配置檔案也在,直接覆蓋就行:
注意:在 my.cnf 檔案所在目錄,看是否有一個叫 my.cnf.d 的資料夾,
如果沒有需要新建一個,不然後面安裝的時候會報錯。
$> touch /etc/my.cnf
$> vi /etc/my.cnf
#my.cnf內容如下
# *** DO NOT EDIT THIS FILE. It`s a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
#普通專案的編碼方式可以設定成 utf8
#這裡設定成utf8mb4,是因為我的專案需要儲存 emoji 表情,
#這種表情雖然是utf8編碼,但是一個字元需要佔用4個位元組,而MySQL utf8編碼只能存放3位元組的字元。
#在MySQL 5.6 以上版本中,可以設定編碼為utf8mb4,這個字符集是utf8的超集。
default-character-set=utf8mb4
[mysqld]
# 一般配置選項
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
#普通專案的編碼方式可以設定成 utf8
#這裡設定成utf8mb4,是因為我的專案需要儲存 emoji 表情,
#這種表情雖然是utf8編碼,但是一個字元需要佔用4個位元組,而MySQL utf8編碼只能存放3位元組的字元。
#在MySQL 5.6 以上版本中,可以設定編碼為utf8mb4,這個字符集是utf8的超集。
character-set-server=utf8mb4
default_storage_engine = InnoDB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
socket=/var/lib/mysql/mysql.sock
# 下面一行是忽略大小寫的配置,不想忽略的話可以刪除,或者把值改成 0;
lower_case_table_names=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
[mysqld_safe]
log-error=/var/log/mysql/mariadb/mariadb.log
pid-file=/var/run/mysql/mariadb/mariadb.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
5、建立相關目錄檔案:
$> mkdir -p /var/log/mysql/mariadb
$> touch /var/log/mysql/mariadb/mariadb.log
$> chown -R mysql:mysql /var/log/mysql
$> mkdir /var/run/mysql
$> chown -R mysql:mysql /var/run/mysql
$> mkdir /var/lib/mysql
$> chown -R mysql:mysql /var/lib/mysql
$> ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
6、切換到mysql的bin目錄執行下面命令初始化資料庫:
$> rm -rf /usr/local/mysql/data/* (沒有/usr/local/mysql/data目錄可以不執行)
$> ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7、執行完畢後會自動生成預設的初始密碼在執行記錄中,注意複製出來!
8、啟動mysql 服務,下方會提示啟動成功字樣
$> service mysql start
啟動成功會顯示:Starting MySQL [ OK ! ]
9、配置一下mysql的環境變數
$> cd /etc/profile.d
$> touch mysql.sh
$> vi mysql.sh
#mysql.sh新增如下內容
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME PATH
$> source /etc/profile
三、登入
1、登入
$> mysql -uroot -p
# 輸入預設的初始密碼
2、修改密碼
mysql> set password=password(`新密碼`);
3、開啟遠端登入
3.1、設定mysql的遠端登入:
# grant all privileges on 庫.表 to 使用者@`%` identified by `使用者密碼`;
mysql> grant all privileges on *.* to root@`%` identified by `root密碼`;
mysql> flush privileges;
3.2、設定防火牆:
# 設定防火牆:
$> firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新載入:
$> firewall-cmd --reload
# 檢視:
$> firewall-cmd --zone= public --query-port=3306/tcp 或 firewall-cmd --zone=public --list-ports
4、設定開機自啟(非必須,不影響使用):
$> chkconfig --list
$> chkconfig --add mysql
$> chkconfig mysql on
# 然後使用chkconfig --list命令再次檢視自啟服務列表,
# 會看到mysql的2-5都顯示開(有些顯示的是 on);
# 說明mysql服務會隨機器啟動而自動啟動
然後就可以匯入 SQL 檔案建表跑服務了。
如果想要關閉 mysql 服務:
$> service mysql stop