互聯網世界里最流行的開源關係型資料庫之一就是MySQL/MariaDB了,由於高度的相似,故而直接使用mysql統一指稱。 ...
互聯網世界里最流行的開源關係型資料庫之一就是MySQL/MariaDB了,由於高度的相似,故而直接使用mysql統一指稱。
windows下的安裝
windows最吸引人的地方就在於易於安裝。mysql在WINDOWS下也是最容易安裝的。直接在官網上下載可安裝程式,一路NEXT即可。
ubuntu18.04的安裝
如果是生產環境部署,建議以普通用戶角色,使用sudo命令方式安裝,從而兼顧安全性與許可權充足。如果讀者是開發者,在測試環境下使用root帳號,則可以直接輸入命令。
# 獲得最新的安裝數據 apt update apt upgrade -y # 安裝mysql服務 apt install -y mysql-server apt install -y libmysqlclient-dev # 查看網路診聽 netstat -tap | grep mysql # 進行安全配置 mysql_secure_installation # 常見問題處理方法 # 出現“Would you like to setup VALIDATE PASSWORD plugin?”,可以直接選擇無視。 # 出現“Disallow root login remotely? ”時,如果不止從本地訪問資料庫,可以回車選擇無視 # 出現“Remove test database and access to it? ”,可以回車選擇刪除測試用資料庫 # vim /etc/mysql/mysql.conf.d/mysqld.cnf # 註釋掉bind-address這一行,因為本行要求MYSQL服務只服務於本地。也可以使用sed語句直接封閉,推薦使用sed語句,簡潔有力 sed -i 's/bind-address/#bind-address/g' /etc/mysql/mysql.conf.d/mysqld.cnf # 進行授權工作 mysql -u root -p mysql> grant all privileges on *.* to 'root'@'%' identified by 'hl100800' with grant option; mysql> exit systemctl restart mysql systemctl restart mysql systemctl status mysql ## mysql測試 在windows下能夠訪問mysql的工具很多。包括但不限於: * Mysql官方提供的各類工具,包括GUI與命令行的。 * Mycli * DBeaver * PhpMyAdmin * HeidiSQL * Induction * DbNinja * Pinba * Monyog * Gh-ost * Chive * SQL Lite Manager * Sqlcheck * Orchestrator * MySQLDumper * Navicat(付費) 筆者平時使用DBeaver這個GUI工具,不僅免費,而且能夠訪問多個資料庫,非常推薦。PhpMyAdmin是老牌工具了,安裝部署也非常方便。對於開發者而言,直接在vscode中安裝相關的插件更是值得推薦,畢竟不脫離開發環境,不切換軟體就直接完成任務,對於處在心流狀態下的程式員非常必要。 與前文提到的嵌入式資料庫sqlite不同,mysql是客戶端與伺服器端分離的。mysql有著良好的高併發、高吞吐的特性。此外,也支持資料庫集群、主備切換、讀寫分離等優秀特性,本文不再贅述。最好的學習方法就是訪問官網,看官方文檔。在使用python進行mysql開發時,務必關註: * 在指定伺服器上正確安裝mysql,並且啟動相關服務,檢查防火牆的配置 * 建立好正確的許可權 * 為資料庫、表配置正確的字元集 * 為mysql服務配置系統參數(記憶體、文件句柄數)等 ## python對資料庫的訪問 mysql提供對多種語言的支持。對於python來說,安裝以下包能夠直接訪問mysql。 ```shell pip install mysql-connector pip install mysql-connector-python
以下代碼演示了創建資料庫、表的過程。
import mysql.connector host = 'localhost' user = 'root' password = '8848is8848' dbname = 'demodb' # 創建資料庫 demodb = mysql.connector.connect(host=host, user=user, password=password) democur = demodb.cursor() democur.execute(f'create database {dbname}') democur.execute('show databases') for x in democur: print(x) demodb.commit() democur.close() demodb.close() # 創建資料庫成功後創建表結構 demodb = mysql.connector.connect( host=host, user=user, password=password, database=dbname) democur = demodb.cursor() sql_createtable = 'create table demotb(id int not null auto_increment,pm25 float not null,primary key(id))' democur.execute(sql_createtable) demodb.commit() democur.close() demodb.close()
以上代碼創建了demodb資料庫,並且在這個庫下創建了demotb數據表。這個表非常簡單:
◎id,整數類型做為主鍵,並且能夠自動增長。
◎pm25,浮點數,未來存儲環境檢測的pm2.5的值。
◎考慮採樣是固定頻率,所以不需要時間,使用id標記時點。
後文將填充相關的值,並且使用python來查詢與可視化相關的數據。