Ubuntu下MySQL+Python+pymysql 安裝和簡單使用

一. MySQL 安裝

  • apt-get install mysql-server
  • apt-get isntall mysql-client
  • apt-get install libmysqlclient-dev

 

  • 上面三條指令安裝完後,可以用sudo netstat -tap | grep mysql,查看是否安裝成功並啓動。

 

二. Python 安裝

  • apt-get install python3.7
  • 安裝成功後,直接輸入命令python或者python3,即可進入python。
  • 或者用python test.py、python3 test.py來運行py文件。

 

三. pymysql 安裝

  • 常見的Python+MySQL有:MySQLdb(python2版本支持)和PyMySQL(python3版本支持)。
  • apt-get install python-pip
  • 如果要安裝python3可以用的庫,要通過pip3,安裝方式是:apt-get install python3-pip

 

四. pymysql 簡單使用

1.  程序Access denied問題解決:

  • 這個過程找到了兩種解決方案,但不知道是哪一種解決問題的。所以都先記錄下吧
  • 方案一:

    ①登入MySQL
    ②進入你項目使用的數據庫
    ③輸入以下命令:
    grant usage on *.* to 你項目使用的user@localhost identified by'你的密碼';
    ④最後輸入:
    FLUSH PRIVILEGES;

 

  • 方案二:
    更換了root密碼的認證方式,新版mysql使用的caching_sha2_password,換成mysql_native_password就可以連上了。

    ①登入MySQL
    ②然後輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpasswd';

 

2. 使用示例

import pymysql

#連接到數據庫
user_db=pymysql.connect(host='127.0.0.1',user='root',passwd='sjl1103',db='test')

#獲取遊標對象
cursor=user_db.cursor()

#建立一個表格
create="CREATE TABLE movie_test(M_year  VARCHAR(4),Movie VARCHAR(20),Trans VARCHAR(20),Locate VARCHAR(20),Director VARCHAR(10),Personal_Score DOUBLE,DB_Score DOUBLE)"
cursor.execute(create)
user_db.commit()

#插入內容
insert_table_sql = """\
INSERT INTO movie_test(M_year,Movie,Trans,Locate,Director,Personal_Score,DB_Score)
VALUES('{M_year}','{Movie}','{Trans}','{Locate}','{Director}','{Personal_Score}','{DB_Score}')
"""

#INSERT INTO movie_test VALUES('2018','我不是藥神',' ','華語','文牧野',8.8,8.9);
#INSERT INTO movie_test VALUES('2017','Three Billboards','三塊廣告牌','歐美','馬丁·麥克唐納',8.7,8.7);
cursor.execute(insert_table_sql.format(M_year='2018',Movie='我不是藥神',Trans=' ',Locate='華語',Director='文牧野',Personal_Score=8.8,DB_Score=8.9))

cursor.execute(insert_table_sql.format(M_year='2017',Movie='Three Billboards',Trans='三塊廣告牌',Locate='歐美',Director='馬丁·麥克唐納',Personal_Score=8.7,DB_Score=8.7))

user_db.commit()

#顯示內容
sql_select = """SELECT * FROM movie_test"""
cursor.execute(sql_select)
result = cursor.fetchall()
for row in result:
    for each_one in row:
        print(each_one,end=' ')
        print("  ")
    print("\n")

#關閉數據庫
user_db.close()

 

此時進入MySQL查看,發現確實有表存在:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章