linux環境操作mysql的簡單介紹

本文目錄一覽:

怎樣在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-hant/n/195810.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:37
下一篇 2024-12-02 20:37

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • 如何部署一個服務到一個環境

    本文將從多個方面對如何部署一個服務到一個環境進行詳細的闡述,包括環境準備、代碼編寫、打包部署等。 一、環境準備 1、確定部署環境的操作系統版本、運行時環境(如JDK、Node.js…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python開發環境包括

    Python作為一門高效、易讀易學的語言,已經被越來越多的開發者使用。而Python的開發環境也發展得越來越完善。本文將會從以下幾個方面對Python開發環境包括做詳細的闡述: 一…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29

發表回復

登錄後才能評論