本文目錄一覽:
怎樣在Linux環境下安裝部署MySQL數據庫系統
在Linux安裝軟件需要預先做好如下一些準備:準備好Linux操作系統如:CentOS7。配置好yum源。
完成上述準備後,就可以動手安裝MySQL數據庫了。主要安裝步驟如下:
1. 禁用selinux
setenforce 0
2. 上傳安裝文件到Linux
3.解壓rpm包
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
4.安裝軟件
yum install mysql-community-{libs,client,common,server}-*.rpm
5.啟動mysql數據庫初始化
systemctl start mysqld
6.修改vi /etc/my.cnf
添加:
[mysqld]
#可以在表中錄入中文
character-set-server=utf8 #
explicit-defaults-for-timestamp
# 禁用當前密碼認證策略,可以使用簡單密碼(生產環境不適用)
validate_password=0
7.重啟mysql服務
systemctl restart mysqld
8.找臨時登錄密碼
grep -i “temporary password” /var/log/mysqld.log
9.連接MySQL數據庫
mysql -uroot -p 輸入臨時密碼
10.修改root用戶登錄密碼為簡單密碼(生產環境不適用)
alter user root@localhost identified by ”;
11.配置MYSQL_PS1環境變量
修改家目錄下:.bash_profile文件,添加
export MYSQL_PS1=”\u@\h[\d]”
12.使新環境變量生效
source /root/.bash_profile
13.重新連接mysql驗證
mysql -uroot -p
除了上述安裝方式以外,可能在公司中會遇到安裝指定版本的需求,那麼如何安裝指定版本的MySQL數據呢?這時我們可以採用下載指定版本安裝包進行安裝的方式,主要步驟如下,假設CentOS7 linux最小安裝,已經配置好yum。首先檢查是否安裝numactl包
rpm -qa|grep numactl
yum install numactl-libs-* # 如果沒有安裝需要安裝。檢查是否安裝libaio包
rpm -qa|grep libaio
yum install libaio-* # 如果沒有安裝需要安裝
具體安裝步驟如下:
* 禁用selinux
setenforce 0
* 上傳安裝文件到Linux
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
* 創建mysql用戶組和用戶
groupadd -g 27 -r mysql
#-r創建系統賬戶,-M 不創建用戶家目錄 -N 不創建和用戶名一樣的用戶組
useradd -M -N -g mysql -r -s /bin/false -c “MySQL Server” -u 27 mysql
id mysql
* 上傳安裝包到root家目錄
* 解壓二進制文件到/usr/local
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local
* 解壓目錄改名為mysql
cd /usr/local
ls -l
mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
* 環境變量中添加mysql/bin目錄
vi /root/.bash_profile
修改PATH=/usr/local/mysql/bin:$PATH:$HOME/bin
添加 export MYSQL_PS1=”\u@\h[\d]”
source /root/.bash_profile
* 創建/usr/local/mysql/etc/my.cnf選項文件 (也可以使用默認的/etc/my.cnf選項文件)
mkdir -p /usr/local/mysql/etc
mkdir -p /usr/local/mysql/mysql-files
* 編輯選項文件my.cnf填寫默認選項
vi /usr/local/mysql/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
pid-file=/usr/local/mysql/data/mysqld.pid
secure_file_priv=/usr/local/mysql/mysql-files
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
Explicit-defaults-for-timestamp
character-set-server=utf8
[mysql]
socket=/usr/local/mysql/data/mysql.sock
* 初始化數據目錄
cd /usr/local/mysql
mkdir data
chmod 750 data
chown mysql:mysql data
* 初始化數據庫
cd /usr/local/mysql
bin/mysqld –defaults-file=/usr/local/mysql/etc/my.cnf –initialize
* 使用systemd管理mysql
例如:systemctl {start|stop|restart|status} mysqld
cd /usr/lib/systemd/system
touch mysqld.service
chmod 644 mysqld.service
vi mysqld.service
# 添加以下內容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
Documentation=
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld –defaults-file=/usr/local/mysql/etc/my.cnf –daemonize –pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
以上內容中注意:The –pid-file option specified in the my.cnf configuration file is ignored by systemd.
默認:LimitNOFILE = 5000,如果連接數(max_connection)需要調大,可以將LimitNOFILE 設置為最大65535
* 創建mysql.conf文件
cd /usr/lib/tmpfiles.d
#Add a configuration file for the systemd tmpfiles feature. The file is named mysql.conf and is placed in /usr/lib/tmpfiles.d.
cd /usr/lib/tmpfiles.d
touch mysql.conf
chmod 644 mysql.conf
* mysql.conf添加內容
vi mysql.conf
添加以下語句:
d /usr/local/mysql/data 0750 mysql mysql –
* 使新添加的mysqld服務開機啟動
systemctl enable mysqld.service
* 手動啟動mysqld
systemctl start mysqld
systemctl status mysqld
* 獲得mysql臨時登錄密碼
cat /usr/local/mysql/data/mysqld.err | grep “temporary password”
* 客戶端登錄連接mysql服務器
mysql -uroot -p
輸入臨時密碼
* 修改MySQL用戶root@localhost密碼
mysql alter user root@localhost identified by ”; #此處為了方便設置為空密碼
* 測試新密碼連接MySQL服務
mysql -uroot -p
至此,我們就完成了在Linux環境下安裝MySQL的任務。通過這兩種方式我們可以體會到在Linux環境下安裝軟件的基本思路及方法。
linux環境下通過軟鏈接變更mysql數據存儲路徑
想要改變mysql數據存儲路徑的想法最初是在生產服務器上mysql的數據放到了系統盤上,導致系統盤滿額,沒有足夠的內存交換空間而死機。
將mysql數據存儲到其他目錄下有兩種方法,方法一修改my.cnf配置文件,不過經過筆者通過網上的配置資料嘗試總是不成功,環境是在centos7下操作的。後來想到一個簡單的方法,通過linux的軟鏈接將實際數據放到另外的目錄裏面就可以了。
操作系統是centos7
mysql是通過二進制包裏面的rpm方式安裝的。相當於全自動了。
先關閉mysql
默認情況下,rpm安裝好的mysql會將數據放置在 /var/lib/mysql 目錄當中,我們像將數據遷移到/mnt/data目錄當中在terminal當中輸入:
mv命令會直接將 /var/lib/mysql 文件夾直接剪切到 /mnt/data 目錄當中。
這時我們需要回到/var/lib目錄當中,
在這個目錄當中建立軟鏈接。
軟鏈接相當於windows裏面創建目錄快捷方式是一樣的,這個時候你應該可以看到mysql文件夾回到了 /var/lib 目錄當中,要進去查看一下mysql的路徑是否和my.cnf一致。
這時候我們再啟動mysql
以上我們就將數據遷移到其他目錄下,並且還沒有修改和變更my.cnf文件。
《從0到1 最詳細MySQL安裝流程(Linux環境)
查看服務器是否有自帶的MySQL,如果有可以直接使用,如果自帶的版本比較低,可以刪除然後安裝自己想要的版本 (在安裝新版本MySQL之前,需要卸載服務器自帶的MySQL包和MySQL數據庫分支mariadb的包)
1、rpm -qa|grep mysql — 查詢服務器是否有mysql,如有,則執行下面的語句進行刪除
2、rpm -qa |grep mariadb — 查詢服務器是否有mariadb,有則執行第三步進行刪除
3、rpm -e –nodeps 要刪除的文件名( nodeps表示強制刪除 )
小貼士1: 如果使用rz命令時提示找不到命令,直接執行: yum -y install lrzsz 則可以在線下載。
命令: rz 或者rz -be
格式: rz -be 選擇需要上傳的文件
批量或者單個上傳文件,通過ZMODEM協議,除此之外,還可以通過ftp或者sftp進行上傳
按照下面的命令順序執行,文件名修改成你壓縮後的文件名稱即可
啟動命令: systemctl start mysql
報錯信息: Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
根據報錯信息執行 : systemctl status mysqld.service” 或者 “journalctl -xe”命令查看報錯詳情,發現報錯信息中存在: Data Dictionary upgrade from MySQL 5.7 in progress 。
說明是因為新版本和之前服務器自帶的版本對應的包存在衝突,刪除對應的衝突目錄即可,執行: rm -rf /var/lib/mysql/*(執行刪除命令的時候要看清楚哦)
systemctl start mysql — 啟動服務器
第一次成功啟動MySQL會被設置默認一個密碼,通過以下命令查看並進行登錄。
1、查看第一次啟動的臨時密碼 :grep password /var/log/mysqld.log
2、連接到服務器 : mysql -u root -p 回車,然後輸出密碼
3、第一次連接會強制你必須修改連接密碼 ,可以使用以下的語句進行修改密碼:
ALTER USER root@localhost IDENTIFIED WITH caching_sha2_password BY ‘123456’; (MySQL8.x適合使用這個語句)
UPDATE USER SET PASSWORD=PASSWORD(‘你的密碼’) WHERE USER=’root’; (MySQL5.x版本的修改)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/195810.html