使用tar命令解壓
tar -zxvf mysql-8.0.32-el7-x86_64.tar.gz -C /usr/local/
到/usr/local/修改解壓后的文件名為mysql
創建mysql用戶組和用戶,自己在mysql下面創建data目錄存儲信息,把權限交給mysql這個用戶
groupadd mysql
useradd -r -g mysql mysql
chown mysql:mysql -R /usr/local/mysql/data
其中第二個命令可能報錯:chown: cannot access ‘/usr/local/mysql-8.0.32/data’: No such file or directory,意味著 MySQL 服務器(mysqld)在啟動過程中無法找到libaio.so.1這個共享庫文件。libaio.so.1庫通常用于異步 I/O 操作,MySQL 在某些情況下(如使用 InnoDB 存儲引擎)需要這個庫來實現高效的 I/O 操作。執行一下命令解決:
sudo yum install libaio
在/etc目錄下創建mysql配置文件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/mysql.err
port = 3307
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
character-set-server = UTF8MB4
[client]
socket =/usr/local/mysql/data/mysql.sock
default-character-set = UTF8MB4
basedir是你bin文件所在的目錄
datadir是你的數據目錄
socker設置為data里面這樣啟動時會產生mysql.socker文件會放在data目錄下面,不會不知道在哪log-error文件道理也是如此,你pid文件也可以防在data文件目錄下
port是啟動端口
sql_mode 是 MySQL 數據庫的一個系統變量,用于定義服務器執行 SQL 語句時應遵守的規則和模式。這個變量可以設置多種不同的模式,以改變 MySQL 行為的各個方面,例如日期和時間的處理、數據類型的驗證等
其他的按照此配置就行
進入bin目錄初始化data文件注意里面的參數要和自己的目錄對應
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
需注意,最后紅框中的內容是初始密碼,先復制暫存一下。
執行命令將會讓你使用service來啟動和停止mysql:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
啟動mysql:
service mysql start
設置環境變量:
export PATH=$PATH:/usr/local/mysql/bin
執行這條命令這樣那就可以在任意目錄下執行mysql -uroot,不用在bin目錄下面。
進入mysql,使用日志文件給出的初始密碼,進去后你使用數據庫的命令可能會提示說讓你設置新密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
這樣壓縮包安裝mysql就完成了。