日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)

發布時間:2024/10/6 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.28

2.新增配置文件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 = 1

3.安裝

這里是不同于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/data

4.啟動

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:e

6.登陸

輸入從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 status

10.添加普通用戶

特別注意: 以下操作需要在服務器上執行,否則賦權無效:

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

二、問題匯總

文件權限問題:

  • mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log’, however file don’t exists. Create writable for user ‘mysql’.
  • /usr/local/mysql/bin/mysqld: Can’t create/write to file ‘/var/run/mariadb/mariadb.pid’ (Errcode: 2 - No such file or directory)
  • # mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.# 解決 mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/log/mariadb/# /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)# 文件權限問題,一樣的問題,沒有創建該目錄和權限 mkdir /var/run/mariadb/ chown -R mysql:mysql /var/run/mariadb/

    其他問題:
    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

    # [ERROR] SSL error: Unable to get private key from 'server-key.pem'# 解決 find / -name server-key.pem chown -R mysql:mysql /var/lib/mysql/# [ERROR] Can't start server: Bind on TCP/IP port: Address already in use# 解決 關閉占用的端口即可 netstat -nat |grep ":port"

    總結

    以上是生活随笔為你收集整理的MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。