目錄
一、準備
1、檢查libaio.so.1
2、卸載刪除原有的mariadb
3、刪除my.cnf
4、下載mysql安裝包
二、安裝
1、上傳mysql
2、建立mysql所需目錄
3、建立配置文件my.cnf
4、創(chuàng)建mysql用戶并授權(quán)
5、初始化數(shù)據(jù)庫
6、啟動MySQL數(shù)據(jù)庫
7、配置MySQL環(huán)境變量
8、修改root登錄密碼
?三、常見啟動報錯處理
四、配置
1、開啟MySQL遠程連接
?2、解決Navicat連接報錯“caching_sha2_password”
一、準備
1、檢查libaio.so.1
mysql啟動需要這個包,安裝前提前檢查下有沒,沒有則需要安裝。
###查找
whereis libaio.so.1
###如果沒有則安裝
#在線安裝
yum install -y libaio
#離線安裝
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
2、卸載刪除原有的mariadb
?卸載刪除原有的mariadb,否則可能會報異常。?
#查詢原有的mariadb環(huán)境
rpm -qa|grep mariadb
#卸載操作,rpm -e --nodeps后續(xù)跟著相應(yīng)查出的mariadb即可,--nodeps為忽略依賴
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
3、刪除my.cnf
如果之前安裝過mysql卸載了,可查看下有無my.cnf并刪除
#查找
find / -name my.cnf
#刪除
rm -rf /etc/my.cnf
4、下載mysql安裝包
官網(wǎng)地址:MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/
根據(jù)自己的操作系統(tǒng)情況選擇下載,我選了第一個“mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz”
注意:下載時確認下版本,下圖紅框處glibc版本需要與mysql顯示的版本一致。
二、安裝
1、上傳mysql
#將文件mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz上傳到服務(wù)器
#解壓
tar -zxvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz
#移動到要安裝的目錄并重命名
mv mysql8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql
2、建立mysql所需目錄
#建立mysql所需目錄 /usr/local/mysql下建立
mkdir data
mkdir log
mkdir pid
mkdir tmp
3、建立配置文件my.cnf
#編輯my.cnf
vim my.cnf
添加如下內(nèi)容(二選一):
第一套:
[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
第二套:使用過程中發(fā)現(xiàn)第一套占用內(nèi)存略多,這套占用內(nèi)存小一點,后面補充了這個第二套配置。
[mysqld]
port = 13306
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
#默認加密方式
default-authentication-plugin=mysql_native_password
# 服務(wù)端使用的字符集
character-set-server=utf8mb4
#1表示大小寫不敏感,0表示大小寫敏感
lower_case_table_names=1
skip-external-locking
key_buffer_size=256M
#限制server接受的數(shù)據(jù)包大小
max_allowed_packet=20M
table_open_cache=1024
sort_buffer_size=4M
net_buffer_length=8K
read_buffer_size=4M
read_rnd_buffer_size=512K
myisam_sort_buffer_size=64M
thread_cache_size=128
tmp_table_size=128M
explicit_defaults_for_timestamp=true
max_connections=200
max_connect_errors=50
open_files_limit=65535
# 創(chuàng)建新表時將使用的默認存儲引擎
default_storage_engine=InnoDB
innodb_data_file_path=ibdata1:10M:autoextend
innodb_buffer_pool_size=1024M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
transaction-isolation=READ-COMMITTED
#開啟慢查詢
slow_query_log=1
#慢查詢最大時間5秒
long_query_time=5
#時區(qū)
default-time_zone='+8:00'
#關(guān)閉binlog日志
#skip-log-bin
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
?注意:
在MySQL8之后不支持NO_AUTO_CREATE_USER服務(wù)。也就是設(shè)置sql_mode中不能有NO_AUTO_CREATE_USER,否則后續(xù)MySQL無法啟動,啟動報錯如下:
4、創(chuàng)建mysql用戶并授權(quán)
#新建用戶
adduser mysql
#授權(quán)
chown -R mysql:mysql /usr/local/mysql
5、初始化數(shù)據(jù)庫
這里初始化后會有會打印出一個隨機密碼(如:?root@localhost: JQ=ihNp-x64N ),記住他,后續(xù)修改root密碼要用。
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --lower_case_table_names=1
選項說明:
–initialize 初始化(真正開始干活)
–user=mysql 以mysql用戶的身份初始化數(shù)據(jù)庫,產(chǎn)生文件都是mysql作為擁有者
–basedir=xxx mysql其安裝目錄,非常重要
–lower_case_table_names=1 不區(qū)分大小寫,初始化不指定,必須重裝才能解決,非常重要
6、啟動MySQL數(shù)據(jù)庫
[準備操作] 不建立mysqld.log文件的話后續(xù)會報錯
#建立所需
touch /usr/local/mysql/log/mysqld.log
#修改所屬用戶
chown -R mysql:mysql /usr/local/mysql/log/mysqld.log
啟動方式一:
#將mysql納入服務(wù)管理,這步不執(zhí)行的話service mysql start報錯
cp support-files/mysql.server /etc/init.d/mysql
#啟動
service mysql start
啟動方式二:
#啟動MySQL
systemctl start mysqld
#停止MySQL
systemctl stop mysqld
#查看MySQL運行狀態(tài)
systemctl status mysqld
#設(shè)置MySQL開機自啟
systemctl enable mysqld
這里解答下為什么方式一要復(fù)制?mysql.server 到 /etc/init.d/mysql
/etc/init.d/xxxx xxxx這樣的方式是老版本Linux使用的服務(wù)管理方式(針對從官方軟件倉庫或官方鏡像源安裝的軟件),針對CentOS來說,是CentOS 6.9及其以下版本才用這樣的方式啟動MySQL服務(wù),從CentOS 7開始,改成了systemd管理系統(tǒng)服務(wù),這樣可以用方式二來管理服務(wù)。
摘于:知乎 https://www.zhihu.com/question/455654934
?
7、配置MySQL環(huán)境變量
啟動成功后修改環(huán)境變量,環(huán)境變量修改完后加載環(huán)境變量,然后輸入mysql測試環(huán)境變量是否配置成功。
#打開/etc/profile文件編輯
sudo vim /etc/profile
#文件/etc/profile最下面加入如下內(nèi)容
#MYSQL_HOME
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#修改保存后加載環(huán)境變量
source /etc/profile
8、修改root登錄密碼
首次啟動會報錯:
#mysql.sock文件路徑不對的問題
#在/tmp下創(chuàng)建一個link:
ln -s /usr/local/mysql/tmp/mysql.sock /tmp/mysql.sock
?解決報錯問題后重新登錄:
#root登錄
mysql -u root -p
#輸入初始化數(shù)據(jù)庫時讓記住的密碼
JQ=ihNp-x64N
#修改密碼,注意如果密碼不符合配置的密碼策略,會報錯,密碼可以復(fù)雜點
alter user root@localhost identified by '123456';
?三、常見啟動報錯處理
報錯1:
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).=
需要建立所需文件并修改文件屬主后再次啟動。
#建立所需
touch /usr/local/mysql/log/mysqld.log
#修改所屬用戶
chown -R mysql:mysql /usr/local/mysql/log/mysqld.log
報錯2:
ERROR! The server quit without updating PID file (/usr/local/mysql/pid/mysqld.pid).=?
可以查看日志文件/usr/local/mysql/log/mysqld.log確認具體原因。
比如:在MySQL8之后不支持NO_AUTO_CREATE_USER服務(wù)。
報錯3:
mysql.sock文件路徑不對的問題
在/tmp下創(chuàng)建一個link:ln -s /usr/local/mysql/tmp/mysql.sock /tmp/mysql.sock
四、配置
1、開啟MySQL遠程連接
一般都會通過Navicat連接,但root用戶默認只能本地訪問。
#使用mysql數(shù)據(jù)庫
use mysql;
#查看root賬號權(quán)限
select user,host from user;
#如果root不是 %,使用語句更新
update user set host = '%' where user = 'root';
#修改后仍無法遠程訪問可重啟下服務(wù)
service mysql restart
?2、解決Navicat連接報錯“caching_sha2_password”
Navicat連接時報錯 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
- mysql5 默認加密方式是?my_native_password
- mysql8 默認加密方式是?caching_sha2_password
這個問題就是MySQL使用了caching_sha2_password加密方式但Navicat卻找不到某個必需的文件??赏ㄟ^修改root加密方式來解決。
# 選擇數(shù)據(jù)庫mysql
use mysql;
#只修改root加密方式,這里還需定義密碼,注意如果密碼不符合配置的密碼策略,會報錯,密碼可以復(fù)雜點
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123@#a';
配置完成后再測試下連接,可以連接成功了。文章來源:http://www.zghlxwxcb.cn/news/detail-683282.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-683282.html
到了這里,關(guān)于Linux環(huán)境離線安裝MySQL8.0.33的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!