標籤:倉庫 結構 rem ystemd min grant 狀態 系統 1.0
主要知識點:
一、資料庫概述
二、mysql安裝與基本管理
1?? 資料庫概述
1、什麼是資料(Data)?
描述事物的符號記錄稱為資料,描述事物的符號既可以是數字,也可以是文字、圖片,映像、聲音、
語言等,資料由多種表現形式,它們都可以經過數字化後存入電腦。
2、什麼是資料庫(DataBase,簡稱DB)?
資料庫即存放資料的倉庫,只不過這個倉庫是在電腦存放裝置上,而且資料是按一定的格式存放的。
資料庫是長期存放在電腦內、有組織、可共用的資料。
資料庫中的資料按一定的資料模型組織、描述和儲存,具有較小的冗餘度、較高的資料獨立性和易擴充性,並可為各種 使用者共用。
3、 什麼是資料庫管理系統(DataBase Management System 簡稱DBMS)?
瞭解了Data與DB的概念後,如何科學地組織和儲存資料,如何高效擷取和維護資料成了關鍵
這就用到了一個系統軟體---資料庫管理系統,如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用於大型門戶,例如搜狗、新浪等,它主要的優勢就是開放原始碼,因為開放原始碼這個資料庫是免費的,他現在是甲骨文公司的產品。
oracle主要用於銀行、鐵路、飛機場等。該資料庫功能強大,軟體費用高。也是甲骨文公司的產品。
sql server是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。
4、總結:
1、資料庫伺服器:運行資料庫管理軟體的電腦2、資料庫管理軟體:mysql、oracle、db2、sqlserver3、庫:檔案夾4、表:檔案5、記錄:事物一系列典型的特徵,如:cc,male,216、資料:描述事物特徵的符號Mysql:關係型資料庫管理軟體,由瑞典MySQL公司開發,目前屬於Oracle公司。
資料庫伺服器-:運行資料庫管理軟體
資料庫管理軟體:管理-資料庫
資料庫:即檔案夾,用來組織檔案/表
表:即檔案,用來存放多行內容/多條記錄
2?? mysql安裝與基本管理
1、MySQL是什嗎?
mysql就是一個基於socket編寫的C/S架構的軟體用戶端軟體 mysql內建:如mysql命令,mysqldump命令等 python模組:如pymysql
2、資料庫管理軟體分類
分兩大類: 關係型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用 非關係型:mongodb,redis,memcache可以簡單的理解為: 關係型資料庫需要有表結構 非關係型資料庫是key-value儲存的,沒有表結構
3、下載和安裝
3.1 Linux下載和安裝
#二進位rpm包安裝yum -y install mysql-server mysql
3.2 Windows下載和安裝
#1、下載:MySQL Community Server 5.7.16http://dev.mysql.com/downloads/mysql/#2、解壓如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的檔案夾移動到指定目錄,如:C:\mysql-5.7.16-winx64#3、添加環境變數【右鍵電腦】--》【屬性】--》【進階系統設定】--》【進階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】#4、初始化mysqld --initialize-insecure#5、啟動MySQL服務mysqld # 啟動MySQL服務#6、啟動MySQL用戶端並串連MySQL服務mysql -u root -p # 串連MySQL伺服器
問題還沒有徹底解決,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題,即將MySQL服務製作成windows服務。
注意:--install前,必須用mysql啟動命令的絕對路徑# 製作MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --install# 移除MySQL的Windows服務,在終端執行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --remove註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:# 啟動MySQL服務net start mysql# 關閉MySQL服務net stop mysql
4、MySQL的啟動與查看
4.1 Linux平台下查看
# systemctl start mariadb #啟動# systemctl enable mariadb #設定開機自啟動Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.# ps aux |grep mysqld |grep -v grep #查看進程,mysqld_safe為啟動mysql的指令檔,內部調用mysqld命令mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usrmysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock# netstat -an |grep 3306 #查看連接埠tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN# ll -d /var/lib/mysql #許可權不對,啟動不成功,注意user和groupdrwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql
You must reset your password using ALTER USER statement before executing this statement.
安裝完mysql 之後,登陸以後,不管運行任何命令,總是提示這個mac mysql error You must reset your password using ALTER USER statement before executing this statement.解決方案:step 1: SET PASSWORD = PASSWORD(‘your new password‘);step 2: ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;step 3: flush privileges;
4.2 windows平台到服務中查看即可
初始狀態下,管理員root,密碼為空白,預設只允許從本機登入localhost設定密碼[[email protected] ~]# mysqladmin -uroot password "123" 設定初始密碼 由於原密碼為空白,因此-p可以不用[[email protected] ~]# mysqladmin -uroot -p"123" password "456" 修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設定新密碼命令格式:[[email protected] ~]# mysql -h172.31.0.2 -uroot -p456[[email protected] ~]# mysql -uroot -p[[email protected] ~]# mysql 以root使用者登入本機,密碼為空白
5、破解密碼
5.1 linux平台下,破解密碼的兩種方式
方法一:刪除授權庫mysql,重新初始化
[[email protected] ~]# rm -rf /var/lib/mysql/mysql #所有授權資訊全部丟失!!![[email protected] ~]# systemctl restart mariadb[[email protected] ~]# mysql
方法二:啟動時,跳過授權庫
[[email protected] ~]# vim /etc/my.cnf #mysql主設定檔[mysqld]skip-grant-table[[email protected] ~]# systemctl restart mariadb[[email protected] ~]# mysqlMariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";MariaDB [(none)]> flush privileges;MariaDB [(none)]> \q[[email protected] ~]# #開啟/etc/my.cnf去掉skip-grant-table,然後重啟[[email protected] ~]# systemctl restart mariadb[[email protected] ~]# mysql -u root -p123 #以新密碼登入
5.2 windows平台下,5.7版本mysql,破解密碼的兩種方式:
方式一:
#1 關閉mysql#2 在cmd中執行:mysqld --skip-grant-tables#3 在cmd中執行:mysql#4 執行如下sql:update mysql.user set authentication_string=password(‘‘) where user = ‘root‘;flush privileges;#5 tskill mysqld #或taskkill -f /PID 7832#6 重新啟動mysql
方式二:
#1. 關閉mysql,可以用tskill mysqld將其殺死#2. 在解壓目錄下,建立mysql設定檔my.ini#3. my.ini內容,指定[mysqld]skip-grant-tables#4.啟動mysqld#5.在cmd裡直接輸入mysql登入,然後操作update mysql.user set authentication_string=password(‘‘) where user=‘root and host=‘localhost‘;flush privileges;#6.注釋my.ini中的skip-grant-tables,然後啟動myqsld,然後就可以以新密碼登入了
6、統一字元編碼
注意:設定檔中的注釋可以有中文,但是配置項中不能出現中文
全域配置解析
#在mysql的解壓目錄下,建立my.ini,然後配置#1. 在執行mysqld命令時,下列配置會生效,即mysql服務啟動時生效[mysqld];skip-grant-tablesport=3306character_set_server=utf8default-storage-engine=innodbinnodb_file_per_table=1#解壓的目錄basedir=E:\mysql-5.7.19-winx64#data目錄datadir=E:\my_data #在mysqld --initialize時,就會將初始資料存入此處指定的目錄,在初始化之後,啟動mysql時,就會去這個目錄裡找資料#2. 針對用戶端命令的全域配置,當mysql用戶端命令執行時,下列配置生效[client]port=3306default-character-set=utf8user=rootpassword=123#3. 只針對mysql這個用戶端的配置,2中的是全域配置,而此處的則是只針對mysql這個命令的局部配置[mysql];port=3306;default-character-set=utf8user=egonpassword=4573#!!!如果沒有[mysql],則使用者在執行mysql命令時的配置以[client]為準
View Code
統一字元編碼
#1. 修改設定檔[mysqld]default-character-set=utf8 [client]default-character-set=utf8 [mysql]default-character-set=utf8#mysql5.5以上:修改方式有所改動[mysqld]character-set-server=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]default-character-set=utf8#2. 重啟服務#3. 查看修改結果:\sshow variables like ‘%char%‘
MySQL資料庫篇之初始資料庫