1盐欺、下載Mysql二進(jìn)制報(bào)(選擇Linux的通用版本)
mysql官網(wǎng)地址:https://downloads.mysql.com/archives/community/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-linux-glibc2.12-x86_64.tar
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.18-linux-glibc2.12-x86_64.tar
2、解壓,注意需要解壓二次
tar xvf /data/db/mysql-5.7.26-linux-glibc2.12-x86_64.tar
tar xvf /data/db/mysql-8.0.18-linux-glibc2.12-x86_64.tar
tar xvf /data/db/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
tar xvf /data/db/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
ansible 解壓必須指定目錄柏靶,如果不指定,會(huì)默認(rèn)解壓在root的家目錄下溃论。
ansible db -m shell -a 'tar xvf /data/db/mysql-5.7.26-linux-glibc2.12-x86_64.tar?-C /data/db/'
ansible db -m shell -a 'tar xvf /data/db/mysql-8.0.18-linux-glibc2.12-x86_64.tar -C /data/db/'
ansible db -m shell -a 'tar xvf?/data/db/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /data/db/'
ansible db -m shell -a 'tar xvf /data/db/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /data/db/'
3屎蜓、重名,方便記憶是識(shí)別
ansible db -m shell -a 'mv /data/db/mysql-5.7.26-linux-glibc2.12-x86_64 /data/db/mysql-5.7'
ansible db -m shell -a 'mv /data/db/mysql-8.0.18-linux-glibc2.12-x86_64 /data/db/mysql-8.0'
4. 創(chuàng)建用戶組
groupdel mysql? #刪除組
groupadd mysql? #添加組
5.創(chuàng)建用戶
userdel mysql? #刪除用戶
useradd -r -g? mysql -s /bin/false mysql? #添加用戶 -g mysql 是指定用戶組 -s /bin/false 是指定用戶所使用的shell 最后mysql是用戶名稱
6. 指定mysql文件夾為mysql用戶所有
chown mysql ./mysql -R
7.在data目錄下創(chuàng)建mysql相關(guān)文件夾文件夾
mkdir /data/mysql
mkdir /data/mysql/logs
mkdir /data/mysql/conf
mkdir /data/mysql/data
8.安裝相關(guān)依賴
apt-get install libaio1 libaio-dev
sudo apt-get install libncurses5-dev
9钥勋、創(chuàng)建my.cnf 文件
[mysql]
#設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
skip-name-resolve
user=mysql
ngram_token_size=2
server-id=1
default_password_lifetime=0
port=3306
#設(shè)置安裝目錄
basedir=/opt/mysql
#數(shù)據(jù)存放目錄
datadir=/data/mysql/data
log-error=/data/mysql/logs/err.log
#允許最大連接數(shù)
max_connections=1000
#服務(wù)端默認(rèn)使用的字符集
character-set-server=utf8mb4
#創(chuàng)捷新表時(shí)默認(rèn)的儲(chǔ)存引擎
default-storage-engine=INNODB
#忘記密碼時(shí)使用
#skip-grant-tables
#不區(qū)分大小寫
lower_case_table_names=1
#認(rèn)證方式
default_authentication_plugin=mysql_native_password
max_allowed_packet=500M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wait_timeout=28800
interactive_timeout=28800
max_connect_errors=100
max_user_connections=0
#日志文件大小
max_binlog_size=100M
10炬转、安裝啟動(dòng)
指定配置文件安裝
./mysqld --defaults-file=/data/mysql/conf/my.cnf --initialize
指定配置文件啟動(dòng)
./mysqld --defaults-file=/data/mysql/conf/my.cnf &
11、創(chuàng)建文件 mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
# Have mysqld write its state to the systemd notify socket
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
12算灸、在把 mysql.service 放到 /usr/lib/systemd/system 目錄下
systemctl start mysql? #啟動(dòng)
systemctl stop mysql? #停止
systemctl restart mysql #重啟
systemctl enable mysql? #開機(jī)自啟