1. 程式人生 > >Linux 安裝和遠端連線 mysql

Linux 安裝和遠端連線 mysql

我以centos6.9為例,然後我們需要準備的是下載mysql的安裝包
有兩種方式:
第一種是去官網下載
下載地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
版本:5.6.42,通用版,linux 64位
在這裡插入圖片描述
第二種是使用wget命令直接下載
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
我這裡使用的是第二種方式
[[email protected] /]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz


把安裝包移動到 /usr/local下面
[[email protected] /]# mv mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz /usr/local/
在這裡插入圖片描述
切換路徑 cd /usr/local
解壓安裝包 [[email protected] local]# tar zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
在這裡插入圖片描述
將解壓後的資料夾重新命名為mysql
[[email protected] local]# mv mysql-5.6.33-linux-glibc2.5-x86_64 mysql
在這裡插入圖片描述

新增系統使用者組和使用者
groupadd mysql
useradd -r -g mysql mysql
進入mysql根目錄: cd /usr/local/mysql
修改當前目錄擁有者為mysql使用者:chown -R mysql:mysql ./
安裝資料庫: ./scripts/mysql_install_db --user=mysql

如果安裝時報以下錯誤
錯誤:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
解決:yum install -y perl-Module-Install.noarch

錯誤:Installing MySQL system tables…/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決:yum install libaio* -y

修改當前目錄擁有者為root使用者: chown -R root:root ./
修改當前data目錄擁有者為mysql使用者:chown -R mysql:mysql data
然後我們複製 /usr/local/mysql/support-files/mysql.server 到 /etc/init.d並重命名為mysql,作為啟動檔案
[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysql
啟動服務
[[email protected] mysql]# /etc/init.d/mysql start
在這裡插入圖片描述

如果啟動時報以下錯誤:
[[email protected] mysql]# /etc/init.d/mysql start
Starting MySQL.touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chmod: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chown: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 129: /var/log/mariadb/mariadb.log: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 166: /var/log/mariadb/mariadb.log: No such file or directory
touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chown: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
chmod: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 129: /var/log/mariadb/mariadb.log: No such file or directory
The server quit without updating PID file (/var/lib/mysql/i[FAILED]2a7r73p9l0he5z.pid).
解決:
mkdir /var/log/mariadb
chmod 700 /var/log/mariadb

為了方便使用mysql來連線資料庫
我們去配置一個環境變數
[[email protected] mysql]# vim /etc/profile
編輯按 i
在檔案最後一行加上 export PATH=$PATH:/usr/local/mysql/bin
在這裡插入圖片描述
儲存並退出 esc shift+zz
重新整理配置檔案 [[email protected] mysql]# source /etc/profile

至此,發現我們還不知道密碼,只有繞過驗證去修改一個了
編輯配置檔案 vim /etc/my.cnf
編輯按 i
在[mysqld]後面任意一行新增“skip-grant-tables”用來跳過密碼驗證的過程
在這裡插入圖片描述
保持並退出 esc shift+zz
重啟mysql服務
[[email protected] mysql]# /etc/init.d/mysql restart
使用root使用者連線
[[email protected] mysql]# mysql -uroot -p
密碼任意
在這裡插入圖片描述
報這個錯是因為 /tmp下沒有mysql.sock檔案
解決:
mysql.sock是一個臨時檔案,在mysql服務啟動時會自動生成
用find命令可以找到mysql.sock檔案,只不過不在/tmp目錄下而已
[[email protected] /]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
解決方法:
建立軟連線到/tmp目錄下:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

除此之外也可以建立一個TCP/IP連線,因為這樣它就不會使用套接字檔案進行連線
mysql -uroot -h 127.0.0.1 -p
密碼任意
在這裡插入圖片描述
出現這個介面表示連線成功
連線成功後選擇資料庫
mysql> use mysql;
mysql> update user set password=password(“你的新密碼”) where user=“root”;
mysql> flush privileges;(//強制重新整理)
mysql> quit(或者\q)
去掉剛才/etc/my.cnf檔案中新增的 skip-grant-tables
儲存後重啟mysql服務
使用賬號密碼登入mysql
[[email protected] mysql]# mysql -uroot -h 127.0.0.1 -p
輸入剛才設定的密碼
登入成功
切換資料庫 use mysql;
查詢所有表 show tables;
其中user表中就記錄了mysql資料庫中所有使用者的賬號密碼資訊,但是密碼是加密後的密文
我們可以輸入查詢語句看看
select host,user,password from user;
在這裡插入圖片描述
下面我來講講怎麼設定遠端連線這個資料庫
第一種:指定ip連線
//授權使用者表
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘192.168.124.188’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
mysql> flush privileges;
在這裡插入圖片描述
然後我們在看看user表中的資料
在這裡插入圖片描述
發現多了剛才授權的那個ip已經新增入庫了
第二種:允許所有ip都能遠端
//修改 localhost 為 %
mysql> update user set host=’%’ where host=‘localhost’;
//強制重新整理
mysql> flush privileges;
最後關閉防火牆或者在防火牆中新增一個埠3306才能被訪問
//關閉防火牆
service iptables stop
//檢視防火牆狀態
service iptables stop
//啟動防火牆
service iptables start
先關閉防火牆用navicat連線試試
在這裡插入圖片描述
在這裡插入圖片描述
至此mysql資料庫安裝成功
在防火牆中新增埠就不多說了,在這篇文章中有提到
https://blog.csdn.net/xiaTianCsDN/article/details/82229519