day06-python資料庫-mysql之安裝

2021-02-13 op81

基礎部分

資料庫是什麼?

之前所學,數據要永久保存,比如用戶註冊的用戶信息,都是保存於文件中,而文件只能存在於某一臺機器上。

如果我們不考慮從文件中讀取數據的效率問題,並且假設我們的程序所有的組件都運行在一臺機器上,那麼用文件存取數據,並沒有問題。

但需要考慮的問題是:程序的執行效率依賴於承載它的硬體,而一臺機器機器的性能總歸是有限的,受限於目前的硬體水平,垂直擴展是有極限的。於是我們只能通過水平擴展來增強我們系統的整體性能,這就需要我們將程序的各個組件分布於多臺機器去執行。

需要注意的是,雖然我們將程序的各個組件分布到各臺機器,但各組件仍然是一個整體,言外之意,所有組件的數據還是要共享的。但每臺機器上的組件都只能操作本機的文件,這就導致了數據必然不一致。

於是我們想到了將數據與應用程式分離:把文件存放於一臺機器,然後將多臺機器通過網絡去訪問這臺機器上的文件,即共享這臺機器上的文件,共享則意味著競爭,會發生數據不安全,需要加鎖處理。

為了遠程訪問並處理這臺共享機器上的文件,我們必須為我們的程序額外寫一段代碼,完成如下功能:

我們寫任何程序都需要有這段代碼,於是我們提取這段代碼,寫成一個專門的處理軟體,這就是mysql等資料庫管理軟體的由來,但mysql解決的不僅僅是數據共享的問題,還有查詢效率,安全性等一系列問題,總之,把程式設計師從數據管理中解脫出來,專注於自己的程序邏輯的編寫。

資料庫概述

什麼是數據?(Data)

數據:描述事務的符號記錄,描述事物的符號既可以是數字,也可以是文字、圖片,圖像、聲音、語言等,數據有多種表現形式,它們都可以經過數位化後存入計算機,在計算機中描述一個事物,就需要抽取這一事物的典型特徵,組成一條記錄,就相當於文件裡的一行內容,如:

1  haiyan  female 20 甘肅  計算機系

單純的一條記錄並沒有任何意義,如果我們按逗號作為分隔,依次定義各個欄位的意思

id   name    sex     age   adderess   major   1   haiyan  female   20      甘肅     計算機系 

如果這樣表示的話就了解了一個人的信息了,讓人一看就清楚了

什麼是資料庫?(DataBase,簡稱DB)

資料庫,顧名思義就是存放數據的倉庫,只不過這個倉庫是在計算機存儲設備上。資料庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗餘度、較高的數據獨立性和易擴展性,並可為各種用戶共享

什麼是資料庫管理系統(DataBase Management System 簡稱DBMS)

在了解了Data與DB的概念後,如何科學地組織和存儲數據,如何高效獲取和維護數據成了關鍵,這就用到了一個系統軟體---資料庫管理系統,如MySQL、Oracle、SQLite、Access、MS SQL Server。。。

mysql:主要用於大型門戶,例如搜狗、新浪等,它主要的優勢就是開放原始碼,因為開放原始碼這個資料庫是免費的,它現在是甲骨文公司的產品。oracle主要用於銀行、鐵路、飛機場等。該資料庫功能強大,軟體費用高。也是甲骨文公司的產品。
sql server:是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。

資料庫說白了就是文件夾

資料庫管理系統就是一個軟體

資料庫伺服器:就是對外專門提供數據的一個機器

資料庫伺服器,資料庫管理系統,表與記錄的關係:

總結:

資料庫管理技術的發展歷程

人工管理階段---》文件系統階段---》數據系統階段

mysql介紹

MySQL是一個關係型資料庫管理系統,MySQL最流行的關係型資料庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System,關係資料庫管理系統) 應用軟體之一。

mysql是什麼?

mysql就是一個socekt服務端,客戶端軟體:mysql自帶,python模塊。

資料庫分兩大類:

mysql下載安裝

Linux版本

二進位rpm包安裝

yum -y install mysql-server mysql

源碼包安裝mysql

 1 1.解壓tar包 2 cd /software 3 tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz 4 mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 5  6 2.添加用戶與組 7 groupadd mysql 8 useradd -r -g mysql mysql 9 chown -R mysql:mysql mysql-5.6.2110 11 3.安裝資料庫12 su mysql13 cd mysql-5.6.21/scripts14 ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data15 16 4.配置文件17 cd /software/mysql-5.6.21/support-files18 cp my-default.cnf /etc/my.cnf19 cp mysql.server /etc/init.d/mysql20 vim /etc/init.d/mysql   #若mysql的安裝目錄是/usr/local/mysql,則可省略此步21 修改文件中的兩個變更值22 basedir=/software/mysql-5.6.2123 datadir=/software/mysql-5.6.21/data24 25 5.配置環境變量26 vim /etc/profile27 export MYSQL_HOME="/software/mysql-5.6.21"28 export PATH="$PATH:$MYSQL_HOME/bin"29 source /etc/profile30 31 6.添加自啟動服務32 chkconfig --add mysql33 chkconfig mysql on34 35 7.啟動mysql36 service mysql start37 38 8.登錄mysql及改密碼與配置遠程訪問39 mysqladmin -u root password 'your_password'     #修改root用戶密碼40 mysql -u root -p     #登錄mysql,需要輸入密碼41 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;     #允許root用戶遠程訪問42 mysql>FLUSH PRIVILEGES;     #刷新權限

源碼包安裝mariadb

 1 1. 解壓 2 tar zxvf  mariadb-5.5.31-linux-x86_64.tar.gz    3 mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必須這樣,很多腳本或可執行程序都會直接訪問這個目錄 4  5 2. 權限 6 groupadd mysql             //增加 mysql 屬組  7 useradd -g mysql mysql     //增加 mysql 用戶 並歸於mysql 屬組  8 chown mysql:mysql -Rf  /usr/local/mysql    // 設置 mysql 目錄的用戶及用戶組歸屬。 9 chmod +x -Rf /usr/local/mysql    //賜予可執行權限 10 11 3. 拷貝配置文件12 cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf     //複製默認mysql配置 文件到/etc目錄 13 14 4. 初始化15 /usr/local/mysql/scripts/mysql_install_db --user=mysql          //初始化資料庫 16 cp  /usr/local/mysql/support-files/mysql.server    /etc/init.d/mysql    //複製mysql服務程序 到系統目錄 17 chkconfig  mysql on     //添加mysql 至系統服務並設置為開機啟動 18 service  mysql  start  //啟動mysql19 20 5. 環境變量配置21 vim /etc/profile   //編輯profile,將mysql的可執行路徑加入系統PATH22 export PATH=/usr/local/mysql/bin:$PATH 23 source /etc/profile  //使PATH生效。24 25 6. 帳號密碼26 mysqladmin -u root password 'yourpassword' //設定root帳號及密碼27 mysql -u root -p  //使用root用戶登錄mysql28 use mysql  //切換至mysql資料庫。29 select user,host,password from user; //查看系統權限30 drop user ''@'localhost'; //刪除不安全的帳戶31 drop user root@'::1';32 drop user root@127.0.0.1;33 select user,host,password from user; //再次查看系統權限,確保不安全的帳戶均被刪除。34 flush privileges;  //刷新權限35 36 7. 一些必要的初始配置37 1)修改字符集為UTF838 vi /etc/my.cnf39 在[client]下面添加 default-character-set = utf840 在[mysqld]下面添加 character_set_server = utf841 2)增加錯誤日誌42 vi /etc/my.cnf43 在[mysqld]下面添加:44 log-error = /usr/local/mysql/log/error.log45 general-log-file = /usr/local/mysql/log/mysql.log46 3) 設置為不區分大小寫,linux下默認會區分大小寫。47 vi /etc/my.cnf48 在[mysqld]下面添加:49 lower_case_table_name=150 51 修改完重啟:#service  mysql  restart


Window版本

首先下載安裝包:http://dev.mysql.com/downloads/mysql/,然後把下載下來的壓縮包解壓到你要存放的路徑,然後設置環境變量。例如我的存放在E盤了

設置環境變量:path--E:\mysql-5.7.19-winx64\bin;

mysqld --initialize-insecure 初始化 (一初始化就產生了一個data的包)

mysqld 啟動mysql

tasklist | findstr mysql #查看mysql是否啟動

mysql -uroot -p 無密碼登錄

mysqladmin -uroot password 123 設置密碼登錄

quit 退出

windows 系統下幹掉任務 tskill mysqld

到此為止,MySQL服務端已經安裝成功並且客戶端已經可以連接上,以後再操作MySQL時,注意:當我們每次用mysql啟動的時候比較麻煩,那麼我們把它做成一個系統服務,就用mysqld --install,當在搜索裡面輸入services.msc就可以看到一個MYSQL了,註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:

net start mysql
net stop mysql

忘記密碼了怎麼辦?破解密碼的兩種方式

方式1:

update mysql.user set authentication_string = password('123') where user = 'root' and host = 'localhost'flush privileges 

tskill mysqld   幹掉任務

正常啟動mysql

mysql -uroot -p123

方式2:(僅限於剛剛安裝在資料庫的時候,如果對你有用的一堆數據已經存在了,:就不要用這種方法,就得用第一種)

在mysql的解壓目錄下新建一個my.ini配置文件,在my.ini配置文件中

[mysql]skip-grant-tables basedir = E:\mysql-5.7.19-winx64datadir = D:\6_data  

在windows下,為mysql服務指定配置文件

在mysql的解壓目錄下,新建my.ini,然後配置

[mysqld]port=3306character_set_server=utf8basedir=E:\mysql-5.7.19-winx64datadir=E:\my_data 
[client]port=3306default-character-set=utf8user=rootpassword=123456
[mysql]user=hiayanpassword=123456

相關焦點

  • Python 操作MySQL資料庫
    mysql資料庫並創建號表、欄位。安裝python即pycharm環境。(詳細步聚這篇就省略了) 第二步:mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl安裝命令:pipinstall mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl
  • python對mysql資料庫的操作(一)
    本文章介紹python對mysql資料庫的基本操作,以及編寫一個模擬用戶的註冊。
  • 每天一分鐘,python一點通(Python 連接資料庫mysql)
    mysql資料庫每天一分鐘,python一點通(workbench new table),且建立了一個資料庫表,該如何操作資料庫?  Python 連接資料庫mysql  在操作mysql資料庫前,請先安裝pymysql(pip install pymysql)  import pymysql.cursorsMYSQL_HOSTS='localhost' # 本地資料庫,若是伺服器上的資料庫,請輸入伺服器IPMYSQL_USER
  • python是如何來連接mysql的
    就像Java連MySQL使用jdbc驅動器一樣,python的標準數據接口Python DB-API為開發人員提供了資料庫應用編程接口,可以支持很多種資料庫,今天我們以mysql為例來介紹python如何操作資料庫。
  • MySQL教程之MySQL定時備份資料庫
    一、MySQL數據備份1.1、 mysqldump命令備份數據在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:
  • Python開發之:Django基於Docker實現Mysql資料庫讀寫分離、集群、主從同步詳解 | 原力計劃
    ,二進位日誌文件名和位置Mysql5.7.29從伺服器:ubuntu16上的docker容器2、docker容器安裝(若在不同伺服器搭建資料庫,此步可省略)docker三個核心概念: Repository(倉庫) -> Image(鏡像) -> Container(容器)sudo apt-get remove docker docker-engine
  • Python連接MySQL資料庫方法介紹(超詳細!手把手項目案例操作)
    ===19.0.3查看版本查看PyMySQL的版本,輸入pip show PyMySQL回車利用PyMySQL連接資料庫首先我們的MySQL資料庫已安裝,且已建好名為執行結果如下:('a', '趙大', '16')('b', '錢二', '16')mysql.connectormysql-connector-python:是MySQL官方的純Python驅動;mysql.connector
  • 「技術文章」《Python 資料庫 GUI CGI編程》
    1.寫在前邊上一次,我們介紹了Python的入門的文章,今天我們就來介紹下Python的資料庫,GUI, CGI的編程,以及Python 2.x 與Python 3.x的區別。2.連接資料庫 Python 標準資料庫接口為 Python DB-API,MySQLdb 是用於Python連結Mysql資料庫的接口。
  • MySQL分支資料庫MariaDB之CentOS安裝教程
    MariaDB資料庫管理系統是MySQL的一個分支,由MySQL的創始人Michael Widenius主持開發。採用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,在存儲引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。
  • 如何使用PyMySQL操作mysql資料庫?
    適用環境python版本 >=2.6或3.3mysql版本>=4.1安裝可以使用pip安裝也可以手動下載安裝。使用pip安裝,在命令行執行如下命令:pip install PyMySQL(大寫不行換小寫)手動安裝,請先下載。下載地址:https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X。其中的X.X是版本(目前可以獲取的最新版本是0.7.6)。下載後解壓壓縮包。
  • mysql安裝圖解 mysql圖文安裝教程
    打開下載的mysql安裝文件mysql-5.0.27-win32.zip,雙擊解壓縮,運行「setup.exe」,出現如下界面mysql安裝嚮導啟動,按「Next」繼續選擇安裝類型,有「Typical(默認)」、「Complete(完全)」、「Custom(用戶自定義)」三個選項,我們選擇「Custom」,有更多的選項,也方便熟悉安裝過程:在「Developer
  • 用Python DB-API開發MySQL腳本
    本文介紹的是一個名為DB-API的模塊——顧名思義,該模塊為開發人員提供了資料庫應用編程接口。DB-API旨在幫應用開發人員擺脫特定資料庫引擎的具體細節的糾纏,編寫出能夠在不同資料庫引擎之間相互移植的資料庫訪問腳本。
  • 【Python入門只需20分鐘】從安裝到數據抓取、存儲原來這麼簡單
    僅僅看了書前面一小部分的我.決定做一名python的腦殘粉。      作為一名合格的腦殘粉(標題黨  (ノ◕ω◕)ノ),為了發展我的下線,接下來我會詳細的介紹 Python 的安裝 到開發工具的簡單介紹,並編寫一個抓取天氣信息數據並存儲到資料庫的例子。
  • 摘要:前面講到Red Hat Linux系統下mysql資料庫的安裝方法,下面...
    前面講到Red Hat Linux系統下mysql資料庫的安裝方法,下面介紹如何遠程訪問mysql資料庫。user表中記錄了不同的用戶對mysql資料庫的訪問權限如果我們要遠程訪問mysql資料庫的話,需要對user表中的記錄做相應修改 mysql> update  user  set host=』%』 where user=』root』 and host=』localhost.localdomain』 ;注意:上面一句中%的意思就是容許任何機器從遠程訪問mysql資料庫
  • 從Web查詢資料庫之PHP與MySQL篇
    因此嘗試連接時需要進行檢查,mysqli_connect_errno()函數將在出現連接 錯誤時返回一個錯誤號,如果成功,則返回0. 請注意: 當連接到資料庫是,通常會議錯誤抑制符@作為第一含代碼。這樣可以巧妙的處理任何錯誤,也可以通過異常來處理。另外,MySQK對同時連接 資料庫的連接數量有一定的限制。
  • 如何創建Django應用並連接資料庫
    在本文中,你將學習如何建立與MySQL資料庫連接的網站項目,使用django-admin創建此項目,並安裝和創建MySQL資料庫,然後將項目與資料庫連接。先決條件在學習本文內容之前,應該先完成以下步驟:在Ubuntu 16.04伺服器上安裝Django。
  • MYSQL資料庫操作案例
    MySQL 創建資料庫CREATE DATABASE 資料庫名;以下命令簡單的演示了創建資料庫的過程,數據名為 RUNOOB:[root@host]# mysql -u root -p >Enter password:****** # 登錄後進入終端mysql> create DATABASE RUNOOB;MySQL 刪除資料庫drop database <資料庫名>;
  • Python 資料庫騷操作 -- MySQL
    ,前面兩篇分別是:《Python 資料庫騷操作 -- MongoDB》《Python 資料庫騷操作 -- Redis》,這篇主要介紹 MySQL 的 orm 庫 SQLAlchemy 。Object Relational Mapper,描述程序中對象和資料庫中數據記錄之間的映射關係的統稱。介紹完了,那就走起唄!MySQL GUI 工具首先介紹一款 MySQL 的 GUI 工具 Navicat for MySQL,初學 MySQL 用這個來查看數據真的很爽。可以即時看到數據的增刪改查,不用操作命令行來查看。Navicat for MySQL
  • ubuntu18.04 django 連接 mysql 資料庫方法和常見錯誤總結
    本人電腦系統 ubuntu18.04 , django版本 2.2在ubuntu電腦使用django連接mysql資料庫的時候遇到了一些問題
  • 考前複習必備MySQL資料庫(關係型資料庫管理系統)
    mysql資料庫管理資料庫進行初始化初始化資料庫,在安裝好mysql資料庫後,不要直接啟動,需要對資料庫進行初始化。利用mysql命令方式啟動資料庫:按windows+r組合鍵,打開窗口,進入命令行;使用cd命令進入mysql目錄;輸入bin\mysqld,啟動mysql服務。啟動資料庫使用bin\mysql -u root -p命令進入mysql操作環境中。服務圖片,開啟資料庫: