1. 程式人生 > >Python實現遠端mysql連線並進行簡單資料庫操作

Python實現遠端mysql連線並進行簡單資料庫操作

1.linux伺服器 安裝mysql:

 apt-get install mysql-server #Root使用者安裝mysql以及相關服務
 apt-get install mysql-client
 apt-get install libmysqlclient-dev

安裝mysql—server 要設定登入使用者的密碼。

如果在監聽狀態則表示安裝成功。

netstat -tap | grep mysql 

2.登入到資料庫

mysql -u root -p  


3.檢視資料庫

Show databases; 


4.MySQL建立登入使用者:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '1234' WITH GRANT OPTION; 

建立使用者、密碼及許可權範圍 第一個 admin為使用者名稱 @後為適用的主機,‘%’表示所有電腦都可以訪問連線,第二個為密碼

flush privileges;

立即生效。
6.檢視系統資料庫有沒有剛剛建立的使用者資訊。

use mysql;
SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user; 

7.檢視埠
mysql埠一般為3306。

show global variables like 'port';

8.檢視埠,如果埠是開著的,但是還是連不上。

netstat -an | grep 3306

經過檢視網上相關問題解決方案我發現3306埠繫結的IP地址是本地的127.0.0.1 ,那我們就在配置檔案中註釋掉BIND ADRESS這一項(此檔案許可權是readonly,用vim不能儲存,用vi編輯,然後esc>shift+:>!wq就能儲存了

vi /etc/mysql/mysql.conf.d/mysqld.cnf

然後重啟sql服務

/etc/init.d/mysql restart

再檢查下3306埠
netstat -an | grep 3306  再去埠掃描下3306就是開啟狀態。

9.接下來就是通過py檔案連線到伺服器的MYSQL,python2連線mysql的庫MySQLdb,python3 連線mysql的庫是PYmysql,我們以python3為例。 如果沒有就安裝 pip install pymysql

10. create databases

import pymysql

# 開啟資料庫連線
db = pymysql.connect("主機地址", "使用者名稱", "密碼", "要連線的資料庫",port=3306,charset='utf8')
#埠號3306,utf-8編碼,否則中文有可能會出現亂碼。
# 使用 cursor() 方法建立一個遊標物件 cursor
cursor = db.cursor()
#如果存在表則刪除
#cursor.execute("DROP TABLE IF EXISTS Employee")

# 使用 execute()  方法執行 SQL 查詢
sql='''CREATE TABLE Employee (
         Id  CHAR(20) NOT NULL,
         Name  CHAR(20),
         Age INT,  
         SEX CHAR(1),
         Salary FLOAT )'''
try:
    cursor.execute(sql)
except Exception as e:
    db.rollback()#如果出錯就回滾並且丟擲錯誤收集錯誤資訊。
    print("Error!:{0}".format(e))
finally:
    db.close()
# 關閉資料庫連線

11.增刪改查操作;

import  pymysql as mysql
#建立資料庫連線物件。
db=mysql.connect("主機地址","使用者名稱","密碼","資料庫名",port=3306,charset='utf8')
#使用 cursor() 方法建立一個遊標物件cursor
cursor = db.cursor()
#SQL語句
sql="SELECT * FROM Employee"
try:
    cursor.execute(sql)
    results = cursor.fetchall() #獲取全部結果集。  fetchone 查詢第一條資料
    if not results: #判斷是否為空。
        print("資料為空!")
    else:
        for row in results:
            Id = row[0]
            Name = row[1]
            Age = row[2]
            Sex = row[3]
            Salary = row[4]
            # 列印結果
            print("id:{0}姓名:{1}年齡:{2}性別:{3}工資:{4}".format(Id,Name,Age,Sex,Salary))
except Exception as e:
    db.rollback()  #如果出錯就會滾資料庫並且輸出錯誤資訊。
    print("Error:{0}".format(e))
finally:
    db.close()#關閉資料庫。

增刪改查操作基本上相同。這是Mysql連線方式。

另外Pycharm攜帶了輕量級的資料庫,如sqllite。