Linux下连接Mysql服务器的方式
一:mysql連接簡介
1、linux下mysql的連接方式有三種:
| 本地mysql命令連接 |
| 客戶端命令連接 |
| 腳本語言封裝方法連接 |
?
?
?
?
2、linux下mysql的連接方法有兩種:
| TCP/IP協(xié)議連接 |
| mysql.sock連接 |
?
?
?
二:mysql配置文件my.cnf的三個區(qū)塊講解
?
[client]區(qū)塊是mysql客戶端連接mysql服務器時讀取本地的my.cnf參數(shù)信息;
[mysql]區(qū)塊是mysql客戶端和mysql服務器部署在同一臺機器上,并且利用mysql命令連接mysql服務器時讀取本地的my.cnf參數(shù)信息;
[mysqld]區(qū)塊是mysql服務器啟動時讀取本地的my.cnf參數(shù)信息。
三、mysql客戶端和mysql服務器部署在同一臺機器上面
1、需要證明的結論:
①mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql命令連接本地mysql服務器指定localhost這個地址,不需要指定mysql服務器端口,讀取[mysql]區(qū)塊的配置信息,并且通過mysql.sock方法連接mysql服務器;
②mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql -h127.0.0.1連接mysql服務器讀取[client]區(qū)塊的配置信息,通過TCP/IP協(xié)議方法連接mysql服務器,并且默認指定3306端口;
③mysql客戶端和mysql服務器部署在同一臺機器上面時,用python腳本登入mysql服務器相當于客戶端方式登入,不讀取my.cnf配置文件,只是python用自己的模塊封裝客戶端參數(shù)信息。
2、開始證明以上結論:
①mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql命令連接本地mysql服務器指定localhost這個地址,不需要指定mysql服務器端口,讀取[mysql]區(qū)塊的配置信息,并且通過mysql.sock方法連接mysql服務器;
第一步:
執(zhí)行如下mysql命令連接mysql服務器
帶上密碼連接成功:
得出結論:
mysql客戶端和mysql服務器部署在同一臺機器時,執(zhí)行mysql命令登入,默認指定localhost這個主機地址去連接;
第二步:
修改mysql服務器端口號并且重載mysql服務
[mysqld] port=3307連接正常:
得出結論:
mysql客戶端和mysql服務器部署在同一臺機器上面時,執(zhí)行mysql命令登入,不需要指定mysql服務器開放的端口;
第三步:
my.cnf的初始配置參數(shù):
[mysql] socket=/tmp/mysql.sock可以成功登入mysql服務器
修改后的my.cnf配置參數(shù):
[mysql] socket=/tmp/mysql.sock_1?出現(xiàn)如下報錯:
得出結論:
mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql命令連接本地mysql服務器指定localhost這個地址,不需要指定mysql服務器開放的端口,讀取[mysql]區(qū)塊的配置信息,并且通過mysql.sock方法連接mysql服務器;
到此為止關于結論①證明完畢!
②mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql -h127.0.0.1連接mysql服務器讀取[client]區(qū)塊的配置信息,通過TCP/IP協(xié)議方法連接mysql服務器,并且默認指定3306端口;
第一步:
my.cnf的初始配置參數(shù):
[client] port=3306 [mysqld] port=3306?可以成功登入mysql服務器
?
修改my.cnf配置參數(shù):
[client] port=3307 [mysqld] port=3306連接mysql服務器報錯:
指定端口連接mysql服務器:
得出結論:
mysql客戶端和mysql服務器部署在同一臺機器上面時,用mysql -h 127.0.0.1連接mysql服務器讀取的的[client]這個區(qū)塊的配置信息,走的是TCP/IP協(xié)議方法連接的,并且如果不指定端口則默認3306端口;
到此為止關于結論②證明完畢!
③mysql客戶端和mysql服務器部署在同一臺機器上面時,用python腳本登入mysql服務器相當于客戶端方式登入,不讀取my.cnf配置文件,只是python用自己的模塊封裝客戶端參數(shù)信息。
?第一步:
python腳本
#!/usr/bin/env python # -*- coding:utf-8 -*- import MySQLdbdef main():#conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='123', port=3306)conn = MySQLdb.connect(host='localhost', user='root', passwd='123', port=3306)cur = conn.cursor()cur.execute("show databases")print cur.fetchall()conn.commit()cur.close()conn.close()if __name__ == '__main__':main()執(zhí)行結果如下:
MySQLdb源碼中有如下解釋:
得出結論:
mysql客戶端和mysql服務器部署在同一臺機器上面時,用python腳本登入mysql服務器相當于客戶端方式登入,不讀取my.cnf配置文件,只是python自己模塊封裝的客戶端參數(shù)信息。
到此為止關于結論③證明完畢!
四、mysql客戶端和mysql服務器部署在不同機器上面
1、需要證明的結論:
①mysql客戶端和mysql服務器部署在不同機器上面時,用mysql -h192.168.163.130 -p123登入mysql服務器讀取本機[client]參數(shù)信息,通過TCP/IP協(xié)議連接;
2、開始證明以上結論:
①mysql客戶端和mysql服務器部署在不同機器上面時,用mysql -h192.168.163.130 -p123登入mysql服務器讀取本機[client]參數(shù)信息,通過TCP/IP協(xié)議連接;
第一步:
mysql客戶端my.cnf配置信息:
[client] port=3306mysql服務器my.cnf配置信息:
[mysqld] port=3306可以正常連接:
第二步:
mysql客戶端my.cnf配置信息:
[client] port=3307mysql服務器my.cnf配置信息:
[mysqld] port=3306連接mysql服務器報錯:
?
指定mysql服務器端口連接,則成功:
得出結論:
mysql客戶端和mysql服務器部署在不同機器上面時,用mysql -h192.168.163.130 -p123登入mysql服務器讀取本機[client]參數(shù)信息,通過TCP/IP協(xié)議連接;
以上內容希望可以幫助你更深刻了解linux下mysql的連接方式
筆者寄語:大多數(shù)IT人掌握的知識都是花拳繡腿,只有少部分人不忘初心;加油!!!
轉載于:https://www.cnblogs.com/zhongguolute/p/7170386.html
總結
以上是生活随笔為你收集整理的Linux下连接Mysql服务器的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Springboot整合ActiveMQ
- 下一篇: myeclipse链接数据库,SQL语句