Linux中安裝MySQL8版本的步驟如下:
1.檢查下libaio.so.1的位置
[root@tdx ]# whereis libaio.so.1
libaio.so: /usr/lib64/libaio.so.1
如果沒有找到該文件
(1).在線安裝
[root@tdx ]# yum install -y libaio
(2).離線安裝:
上傳之后執行命令安裝:
[root@tdx /]# rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
2.清空系統中的原有mariadb的配置文件(/etc/my.cnf)
[root@tdx /]# rm -rf /etc/my.cnf
3.準備mysql安裝包
(1).切換目錄
[root@tdx /]# cd /tdx/
(2).上傳文件到此目錄
mysql8.0.16-linux-glibc2.12-x86_64.tar.gz
(3).解壓
[root@tdx /]# tar -zxvf mysql8.0.33-linux-glibc2.12-x86_64.tar.gz
(4).重命名
[root@tdx /]# mv mysql8.0.33-linux-glibc2.12-x86_64 mysql8.0.33
(5).切換目錄
[root@tdx /]# cd mysql
(6).新建目錄
[root@mysql]# mkdir data
[root@mysql]# mkdir log
[root@mysql]# mkdir pid
[root@mysql]# mkdir tmp
(7).新建配置文件
[root@mysql]# touch my.cnf
修改配置文件增加內容
[root@mysql]# vi my.cnf
增加內容
[mysqld]
port = 3306
basedir =/usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/log/mysqld.log
pid-file = /usr/local/mysql/pid/mysqld.pid
socket = /usr/local/mysql/tmp/mysql.sock
character-set-server=utf8
default-storage-engine=Innodb
max_connections=500
lower_case_table_names = 1
interactive_timeout=288000
wait_timeout=288000
net_read_timeout=900
net_write_timeout=900
max_allowed_packet=1073741824
log_bin_trust_function_creators=1
innodb_flush_log_at_trx_commit = 2
sync_binlog = 2000
key_buffer_size=8G
read_buffer_size=64K
sort_buffer_size=256K
myisam_max_sort_file_size=100G
innodb_buffer_pool_size=10G
innodb-buffer-pool-instances=8
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb-file-per-table=true
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
4.創建新用戶并授權
[root@tdx /]# adduser mysql
[root@tdx /]# chown -R mysql:mysql /usr/local/mysql
5.初始化數據庫(可以實現數據庫的初始化,而且會產生一個隨機密碼)
[root@mysql8.0.33 /]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --lower_case_table_names=1
選項說明:
–initialize 初始化(真正開始干活)
–user=mysql 以mysql用戶的身份初始化數據庫,產生文件都是mysql作為擁有者
–basedir=xxx mysql其安裝目錄,非常重要
–lower_case_table_names=1 不區分大小寫,初始化不指定,必須重裝才能解決,非常重要
6.啟動MySQL數據庫
[root@mysql]# cp support-files/mysql.server /etc/init.d/mysql
注意:默認情況下,GBLIC版本的數據庫要求安裝到/usr/local/mysql目錄,其mysql.server腳本中對應的目錄也是/usr/local/mysql,這會導致mysql無法啟動。所以可以更改其basedir以及datadir兩個變量
[root@mysql]# vim /etc/init.d/mysql
46行 basedir=/usr/local/mysql
47行 datadir=/usr/local/mysql/data
7.啟動MySQL數據庫(不能使用systemctl,只能使用service)
[root@mysql]# service mysql start
Starting MySQL.2023-06-25T04:58:08.333370Z mysqld_safe error: log-error set to ‘/usr/local/mysql/log/mysqld.log’, however file don’t exists. Create writable for user ‘mysql’.
ERROR! The server quit without updating PID file (/usr/local/mysql/pid/mysqld.pid).
[root@mysql]# touch /usr/local/mysql/log/mysqld.log
[root@mysql]# chown -R mysql:mysql /usr/local/mysql/log/mysqld.log
如果啟動報錯:
my_print_defaults: [Warning] World-writable config file ‘/usr/local/mysql/my.cnf’ is ignored.
Starting MySQL.my_print_defaults: [Warning] World-writable config file ‘/usr/local/mysql/my.cnf’ is ignored.
my_print_defaults: [Warning] World-writable config file ‘/usr/local/mysql/my.cnf’ is ignored.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
這個文件:'/usr/local/mysql/my.cnf’權限給的是 777,需要改成644,再次重新啟動即可。
再次啟動: [root@mysql]# service mysql start
Starting MySQL… SUCCESS!
8.登錄數據庫
[root@mysql]# ./bin/mysql -uroot -p -S /usr/local/mysql/tmp/mysql.sock
9.修改root密碼
mysql> alter user root@localhost identified by ‘Datasw@2023’;
10.創建用戶
mysql> create user test@‘%’;
mysql> alter user test@‘%’ identified with mysql_native_password by ‘Datasw@2023’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘test’@‘%’ WITH GRANT OPTION;
mysql> flush privileges;
mysql> quit;
10.給mysql啟動命令增加一個軟連接,以便任意目錄登錄
[root@mysql]# ln -sf /usr/local/mysql/bin/mysql /usr/bin/
以上步驟全部執行成功,就可以使用客戶端鏈接工具鏈接MySQL服務的數據庫了
- 登錄終端出現的問題如下:
[root@localhost lib]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
ln -s /usr/local/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock
解決方法:[root@localhost lib]# ln -s /usr/local/mysql/tmp/mysql.sock /tmp/mysql.sock 即可。
12.對目錄給予權限
# chown -R mysql.mysql /data/mysql
5.可能是/usr/local/mysql/data/mysql.pid文件沒有寫的權限
解決方法 :給予權限,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新啟動mysqld!
13.創建root用戶對外鏈接:
mysql> create user root@‘%’;
mysql> alter user root@‘%’ identified with mysql_native_password by ‘Datasw@2023’;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;
mysql> flush privileges;
mysql> quit;
-
設置開機自啟:
復制操作:如已操作不需要在設置以下的復制命令了*****
cp /usr/local/mysql/support-files/support-files/mysql.server /etc/init.d/mysql復制后賦予權限:chmod +x /etc/init.d/mysql
添加到服務列表:chkconfig --add mysql
查看服務列表:chkconfig --list
設置開機自啟: chkconfig --level 345 mysql on最后重啟服務器即可。使用reboot命令進行了執行。
15.關機命令
常用的命令:
halt 立即關機,poweroff 立即關機, shutdow -h now 立即關機(root用戶使用) shutdown -h 10 10分鐘后自動關機.
shutdown命令:shutdown命令安全的將系統進行關機,有些用戶會使用直接斷電的方式來關閉Linux,這是十分危險的.因為linux在其后臺運行著許多的進程,所以強制關機可能會導致進程數據額定丟失,使得系統處于不穩定的狀態,甚至在有的系統中會損壞設備,而在關機前使用shutdown命令,系統管理員,會通知所有登錄的用戶系統將關閉,并且login指令會被凍結﹐即新的用戶不能再登錄。直接關機或者延遲一定的時間才關機都是可能的﹐還可能重啟。這是由所有進程〔process〕都會收到系統所送達的信號〔signal〕shutdown執行它的工作是送信號〔signal〕給init程序﹐要求它改變runlevel。