MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)
之前分享了《Linux環境root用戶安裝 mysql-5.7.28》,很多時候我們部署的應用或者數據庫的服務器是客戶方的,我們可能沒有root權限,所有這里分享一下非root權限如何安裝MySQL數據庫:
mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
鏈接:https://pan.baidu.com/s/1DmavSo3kCKOPZtmd-FE8mw
提取碼:0v5l
一、安裝
(首先也要檢查一下環境,這里不再贅述)這里使用的是【非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
配置文件內容大家一看便知,內容如下:
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的地方,我們沒有創建MySQL用戶組和用戶,使用的是admin用戶下的bin/mysqld命令和我們自己編寫的my.cnf文件初始化數據庫:
cd /data/mysql-5.7.28 # 這幾個文件夾要創建 mkdir binlog data scripts logs # 使用my.cnf來初始化數據庫 初始化的用戶名是admin【這個用戶就是當前非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.獲取密碼
克隆會話打開另一個窗口,進入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.關閉數據庫
ps -ef |grep mysql # 這里kill掉相應的進程9.添加防火墻端口
生產環境的防火墻還是很有用的:
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.添加普通用戶
特別注意: 以下操作需要在服務器上執行,否則賦權無效:
CREATE USER 'customUser'@'%' IDENTIFIED BY 'customUser'; GRANT ALL PRIVILEGES ON *.* TO 'customUser'@'%' IDENTIFIED BY 'customUser' WITH GRANT OPTION; flush privileges; quit;11.設置開機啟動
vim scripts/is_start_status_mysql.sh # 內容如下: #!/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 # 內容如下: #!/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二、問題匯總
文件權限問題:
其他問題:
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
總結
以上是生活随笔為你收集整理的MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ClickHouse【资源分享 01】L
- 下一篇: 【Windows工具】QuickLook