linux 安裝mysql8以及遠程連接步驟(圖文並茂)


一、下載安裝包:

  1、新建文件夾,主要是為了弄個地方放下載的安裝文件:

mkdir mysql8

  2、進入到創建的mysql8文件夾中,下載mysql文件: 

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

 然后等待它漫長的下載過程吧,如果中途不動了,就終止下載,重新執行這個命令就行,最后會有多個文件,把之前下載的失敗的不完整的安裝包刪除掉就好了 。下載完成后的查看下載結果如下

   3、解壓下載的mysql壓縮包:

tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

解壓后查看當前目錄的文件,會看到有兩個,一個是壓縮的,一個是解壓后的。

 注意: 如果有報錯,就按照對應的依賴包(其他報錯請留言,一起解決),如:

如果報如下錯誤,請安裝組件 [root@iZ8vbf0nw945emer2xmpdhZ soft]# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz tar (child): xz: Cannot exec: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now [root@iZ8vbf0nw945emer2xmpdhZ soft]# yum install -y xz 

二、安裝過程

  1、將解壓的文件重命名mysql,並移動到/usr/local目錄下

mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql mv mysql /usr/local/

圖示:

查看移動后的結果,圖示:

  2、進入到/usr/local目錄下,創建用戶組和用戶並授權

cd /usr/local/ groupadd mysql useradd -r -g mysql mysql cd mysql/ #注意:進入mysql文件下授權所有的文件 chown -R mysql:mysql ./ 

圖示:

   3、到/usr/local/mysql目錄下,創建data文件夾

mkdir data

圖示:

   6、初始化數據庫,會生成隨機密碼,需要記住,一會要用

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

圖示:

   注:如果這里沒有出現這個初始密碼,不要慌。一會記錄應該去哪里找到這個密碼!!

7、修改/usr/local/mysql當前目錄的用戶

chown -R root:root ./ chown -R mysql:mysql data

圖示:

   8、復制創建的文件到etc目錄並重命名(先創建、在授權、在復制、在重命名)

cd support-files/ touch my-default.cnf chmod 777 ./my-default.cnf cd ../ cp support-files/my-default.cnf /etc/my.cnf 

圖示:

   9、編輯配置復制過去的my.cnf文件

cd / cd etc vim my.cnf

圖示,把下邊的內容復制到my.cnf文件中:

[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. basedir = /usr/local/mysql datadir = /usr/local/mysql/data socket = /tmp/mysql.sock log-error = /usr/local/mysql/data/error.log pid-file = /usr/local/mysql/data/mysql.pid tmpdir = /tmp port = 7766 #lower_case_table_names = 1 # server_id = ..... # socket = ..... #lower_case_table_names = 2 max_allowed_packet=50M default-authentication-plugin = mysql_native_password #lower_case_file_system = on #lower_case_table_names = 2 log_bin_trust_function_creators = ON # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M bind-address = 0.0.0.0 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

內容說明:

   10、設置開機自啟

cd /usr/local/mysql cd support-files/ cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql

圖示

  11、注冊服務

chkconfig --add mysql

正常情況是不會出問題的,但是如果提示沒有這個命令就需要需求設置一波:

rpm -aq |grep chkconfig export PATH=/sbin:$PATH chkconfig echo $PATH PATH="$PATH":/sbin echo $PATH

   12、查看是否注冊成功:

chkconfig --list mysql

圖示:

   13、配置 etc/ld.so.conf路徑

vim /etc/ld.so.conf 添加以下內容: /usr/local/mysql/lib

圖示:

  14、配置環境變量

vim /etc/profile source /etc/profile 添加如下內容: MYSQL ENVIRONMENT export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

圖示:

   15、登錄

mysql -uroot -p

圖示:

 報錯一:提示未找到命令。

原因:這是由於系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件。
首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/local/mysql/bin/mysql,

解決辦法:

執行這樣的命令:

ln -s /usr/local/mysql/bin/mysql /usr/bin

圖示:

 

如果在前邊遇到了沒有出現初始密碼的情況 :

解決辦法:

如果是剛才安裝的,那么需要到這個目錄下:/var/log 下找到 mysqld.log文件,如圖:

 

 

 

 在這個日志文件中,找到這一行(框住的就是初始密碼):

 

 報錯二:

 

 解決辦法:

反手就是一個命令:

sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

再次執行登錄命令:

 哦吼,你會發現又報錯了

錯誤三:

 解決辦法:

vim /etc/my.cnf

進入編輯my.cnf文件的模式下,在文件中加入一句話: skip-grant-tables    (這句話就是設置為免密登錄)

設置過后還不能登錄還提示報錯
先啟動mysql :

service mysql start

如果提示無法啟動成功就只能先關閉進程了
關閉進程指令:

ps aux |grep ‘mysql*’

關閉mysql的所有進程 ,再次執行上邊的啟動mysql命令:

在去登錄mysql: mysql -uroot -p

進去之后首先先修改密碼:

use mysql; select user,authentication_string,host from user; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

圖示:

 記得去吧剛才在my.cnf文件中加的那句話(skip-grant-tables)給注釋掉。

  16、修改密碼

use mysql; #進入數據庫 select host,user,authentication_string,plugin from user; #查看用戶信息
grant all privileges on *.* to 'root'@'%'; #授權root用戶可以遠程登陸
flush privileges; #立即生效
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kuaigui2019!'; #修改root用戶密碼
FLUSH PRIVILEGES; #立即生效,這個最后執行。要執行

如果是執行給root用戶授權這一步時報錯,且錯誤信息如下:

 解決辦法:

# 使用mysql 數據庫 use mysql; # 特定用戶的host 修改 update user set host='%' where user='root'; # 指定用戶的授權 grant all privileges on root.* to root@'%'

此時再去查看沒看表的變化:

 其中root用戶的host已經由localhost變成 %了

如果在執行 第五句命令的時候報錯,且如下:

 解決辦法:

回到上一個報錯去解決。

最后別忘了執行最后一個命令(FLUSH PRIVILEGES;

  17、退出、重啟mysql

# 退出mysql ctrl + z # 重啟mysql服務 service mysql restart

圖示:

到這一步基本都可以說OK了 。

萬里長征,還差最后一步,遠程連接

三、設置遠程連接

  1、關閉本地防火牆

  2、在my.cnf文件中添加一句話

default_authentication_plugin=mysql_native_password

  3、開啟linux的防火牆

firewall-cmd --zone=public --add-port=7766/tcp --permanent firewall-cmd --reload

執行上邊命令的時候記得修改成自己的端口號

圖示:

   4、配置默認編碼為utf-8

進入my.cnf文件的編輯模式下,添加以下內容:

character_set_server=utf8 init_connect='SET NAMES utf8'

圖示:

 編輯完成后保存並退出

重啟mysql服務 : service mysql restart

到了這一步,我猜你已經成功了

還有一個報錯:

 解決辦法:

我猜是密碼的問題導致的

解決辦法,配置免密登錄,重啟服務,修改密碼,(這個過程前邊說過了,不重復說)

當以上所有的都沒有問題時,用Navicat測試去連接mysql,如果發現連接的時候報錯,如下:

 

 

 那就去把linux的防火牆關掉:

systemctl stop firewalld.service

 

再去測試連接:

 

 

 

補充:

兩個虛擬機之間相互傳文件辦法:

虛擬機1: 192.168.198.100

虛擬機2:  192.168.116.128

需求:將虛擬機1中的文件傳到虛擬機2中。

文件所在虛擬機1中的全路徑是: /root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

進入到虛擬機2中需要存放的文件夾中,執行如下命令:

scp -r root@192.168.198.100:/root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz ./


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM