MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)
之前分享了《Linux環(huán)境root用戶安裝 mysql-5.7.28》,很多時候我們部署的應(yīng)用或者數(shù)據(jù)庫的服務(wù)器是客戶方的,我們可能沒有root權(quán)限,所有這里分享一下非root權(quán)限如何安裝MySQL數(shù)據(jù)庫:
mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
鏈接:https://pan.baidu.com/s/1DmavSo3kCKOPZtmd-FE8mw
提取碼:0v5l
一、安裝
(首先也要檢查一下環(huán)境,這里不再贅述)這里使用的是【非root用戶】admin用戶來安裝:
1.上傳并解壓
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28 cd mysql-5.7.282.新增配置文件my.cnf
配置文件內(nèi)容大家一看便知,內(nèi)容如下:
vi my.cnf[mysqld] port=3306 basedir=/data/mysql-5.7.28 datadir=/data/mysql-5.7.28/data pid-file=/data/mysql-5.7.28/mysql.pid #socket=/data/mysql-5.7.28/mysql.sock log_error=/data/mysql-5.7.28/logs/error.log server-id=100 max_connections=200 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=64M skip-name-resolve sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE"# binlog log-bin = /data/mysql-5.7.28/logs/mysql-bin.log expire-logs-days = 14 max-binlog-size= 500M server-id = 13.安裝
這里是不同于root用戶安裝MySQL的地方,我們沒有創(chuàng)建MySQL用戶組和用戶,使用的是admin用戶下的bin/mysqld命令和我們自己編寫的my.cnf文件初始化數(shù)據(jù)庫:
cd /data/mysql-5.7.28 # 這幾個文件夾要創(chuàng)建 mkdir binlog data scripts logs # 使用my.cnf來初始化數(shù)據(jù)庫 初始化的用戶名是admin【這個用戶就是當(dāng)前非root用戶】 bin/mysqld --defaults-file=/data/mysql-5.7.28/my.cnf --initialize --user=admin --basedir=/data/mysql-5.7.28 --datadir=/data/mysql-5.7.28/data4.啟動
bin/mysqld_safe --defaults-file=/data/mysql-5.7.28/my.cnf --user=admin &5.獲取密碼
克隆會話打開另一個窗口,進(jìn)入admin用戶的mysql目錄:
cd /data/mysql-5.7.28 cat logs/error.log | grep root@localhost 2021-07-15T09:04:55.479616Z 1 [Note] A temporary password is generated for root@localhost: +oUisNmwk6:e6.登陸
輸入從error.log拿到的密碼: +oUisNmwk6:e
bin/mysql -u root -p # 這里輸入7.修改密碼
set password for 'root'@'localhost' = password('123456'); grant all privileges on *.* to root@'%' identified by '123456'; flush privileges; quit;以下是mysql8.0以后:
alter user 'root'@'localhost' identified by 'root'; flush privileges;8.關(guān)閉數(shù)據(jù)庫
ps -ef |grep mysql # 這里kill掉相應(yīng)的進(jìn)程9.添加防火墻端口
生產(chǎn)環(huán)境的防火墻還是很有用的:
sudo /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT sudo /etc/rc.d/init.d/iptables save sudo /etc/rc.d/init.d/iptables restart sudo /etc/init.d/iptables status10.添加普通用戶
特別注意: 以下操作需要在服務(wù)器上執(zhí)行,否則賦權(quán)無效:
CREATE USER 'customUser'@'%' IDENTIFIED BY 'customUser'; GRANT ALL PRIVILEGES ON *.* TO 'customUser'@'%' IDENTIFIED BY 'customUser' WITH GRANT OPTION; flush privileges; quit;11.設(shè)置開機(jī)啟動
vim scripts/is_start_status_mysql.sh # 內(nèi)容如下: #!/bin/bash # # Author: Created by lww # filename: /data/mysql/scripts/is_start_status_mysql.sh # Date: 2019-05-14 # Description: This script is used to start mysql server. # Version:1.1 # ##################################################################################### is_start_status=`ps -ef|grep -Ew 'mysqld|mysqld_safe' | grep -vw 'grep' | wc -l`if [[ "$is_start_status" -ne 2 ]]; thensleep 10/data/mysql-5.7.28/bin/mysqld_safe --defaults-file=/data/mysql-5.7.28/my.cnf & fi vim /etc/rc.local # 內(nèi)容如下: #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.touch /var/lock/subsys/local /usr/bin/nohup /usr/bin/iostat -dxkt 1 > /tmp/iostat_output 2>/dev/null & ulimit -SHn 65535#auto start mysql su - admin -c /data/mysql-5.7.28/scripts/is_start_status_mysql.sh二、問題匯總
文件權(quán)限問題:
其他問題:
3. SSL error: Unable to get private key from ‘server-key.pem’
4. Can’t start server: Bind on TCP/IP port: Address already in use
總結(jié)
以上是生活随笔為你收集整理的MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ClickHouse【资源分享 01】L
- 下一篇: 【Windows工具】QuickLook