Python實現遠端mysql連線並進行簡單資料庫操作
阿新 • • 發佈:2018-12-26
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。