------------------MySQL數據庫概述---------------------前端
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,mysql
每一個數據庫都有一個或多個不一樣的API用於建立,訪問,管理,搜索和複製所保存的數據。sql
咱們也能夠將數據存儲在文件中,可是在文件中讀寫數據速度相對較慢。數據庫
因此,如今咱們使用關係型數據庫管理系統(RDBMS)來存儲和管理的大數據量。所謂的關係型數據庫,是創建在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據。編程
RDBMS即關係數據庫管理系統(Relational Database Management System)的特色:windows
1.數據以表格的形式出現服務器
2.每行爲各類記錄名稱網絡
3.每列爲記錄名稱所對應的數據域數據結構
4.許多的行和列組成一張表單socket
5.若干的表單組成database
MySQL 是一個關係型數據庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 公司。MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。
MySQL 是開源的,因此你不須要支付額外的費用。
MySQL 支持大型的數據庫。能夠處理擁有上千萬條記錄的大型數據庫。
MySQL 使用標準的SQL數據語言形式。
MySQL 能夠運行於多個系統上,而且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
MySQL 對PHP有很好的支持,PHP是目前最流行的Web開發語言。
MySQL 支持大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件爲8TB。
MySQL 是能夠定製的,採用了GPL協議,你能夠修改源碼來開發本身的 MySQL 系統。
------------------準備工做-------------------
第一種手工編譯安裝: 5.7版本源碼包
百度網盤:連接:https://pan.baidu.com/s/1YusglC6yp-6tJ3vtGdvhww 密碼:wwtc
Windows系統MySQL安裝包:
百度網盤:連接:https://pan.baidu.com/s/1uAODxBNYk0hwTPqwyeKCfg 密碼:scqp
第二種 yum源安裝:
在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但爲了須要,仍是要在系統中安裝MySQL,並且安裝完成以後能夠直接覆蓋掉MariaDB。
(因爲yum源上沒有mysql-server。因此必須去官網下載,這裏 咱們用wget命令,直接獲取)wget -i -c
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
----------------MySQL手工編譯安裝-------------------
1.下載安裝環境包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
2.建立mysql用戶
useradd -s /sbin/nologin mysql
3.建立掛載點,進行掛載。
mkdir /abc
mount.cifs //172.16.10.100:/mysql /abc
PS:由於是虛擬機實驗環境,掛載宿主機共享文件請參考https://blog.51cto.com/13767783/2155747
4查看下是否掛載成功,裏面的壓縮包
[root@localhost /]# cd /abc/mysql
[root@localhost mysql]# ls
boost_1_59_0.tar.gz mysql-5.7.17.tar.gz mysql-boost-5.7.20.tar.gz
5.解壓縮文件
tar zxvf mysql-5.7.17.tar.gz -C /opt/
tar zxvf boost_1_59_0.tar.gz -C /usr/local/cd /usr/local/
mv boost_1_59_0 boost
6.到mysql-5.7.17文件中,進行cmake
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
------注意:若是在CMAKE的過程當中有報錯,當報錯解決後,須要把源碼目錄中的CMakeCache.txt文件刪除,而後再從新CMAKE,不然錯誤依舊------------
7.編譯安裝
make && make install
8.更改mysql的屬主屬組爲mysql,便於管理執行
cd /usr/local/
chown -R mysql.mysql /usr/local/mysql/
9.修改mysql配置文件
vi /etc/my.cnf
詳解:
[client] #客戶端區域
port = 3306 #端口號
default-character-set=utf8 #字符集
socket = /usr/local/mysql/mysql.sock #鏈接路徑[mysql] #服務器區域
port = 3306 #端口號
default-character-set=utf8 #字符集
socket = /usr/local/mysql/mysql.sock #鏈接路徑
#刪除[mysqld]區域的所有配置內容,替換爲下面
詳解:
[mysqld] #mysqld區域配置
user = mysql #用戶爲mysql
basedir = /usr/local/mysql #mysql服務的目錄
datadir = /usr/local/mysql/data #數據的目錄
port = 3306 #端口
character_set_server=utf8 #字符集
pid-file = /usr/local/mysql/mysqld.pid #進程文件
socket = /usr/local/mysql/mysql.sock #鏈接3306端口的套接口文件
server-id = 1 #服務器標識號
#插入sql模式內容
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
修改完成後保存退出 。
10.修改mysql配置文件的屬主屬組
chown mysql:mysql /etc/my.cnf
11.追加環境變量文件
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
使系統環境變量生效
source /etc/profile
12.初始化數據庫操做
cd /usr/local/mysql/
#5.7版本典型的初始化,生成一個空的密碼,下面是指定用戶,指定文件路徑,指定數據文件路徑。
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
13.使mysql.service可以被系統所識別和管理
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
開啓服務,刷新使系統可以識別
systemctl daemon-reload
systemctl start mysqld
14.
systemctl enable mysqld #開機自啓動
netstat -anpt | grep 3306 #查看服務端口是否開啓
15.給root用戶設置密碼abc123
mysqladmin -u root -p password "abc123" #給root帳號設置密碼爲abc123提示輸入的是原始密碼。
#由於以前初始化時設置的是空密碼,直接回車就好,下面的Warning是由於密碼過於簡單,由於是實驗,因此不要緊。
16登陸mysql
mysql -u root –p
安裝成功,登錄成功。
------------------------受權遠程登陸----------------------
在MySQL服務器中輸入命令:
grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
#提高權限做用在第一個 * (表示是全部數據庫) 第二個 * (表示是全部表)root(帳戶) @(表明的是分割符)% (表明全部IP,網絡終端)identified by「abc123」(賦予的密碼)
在客戶端Windows系統:
首先須要安裝mysql
PS:
若是想要使得Windows系統中CMD命令字符界面識別mysql命令操做的話
步驟以下,複製mysql文件的bin文件路徑,複製到個人電腦屬性高級設置的系統環境變量中,找到PATH ,打開後,在path路徑的最前端複製加入以前mysql文件的bin文件路徑,路徑後面,% 分割號前面加英文輸入法格式下的 ; ,點擊完成便可在cmd中操做mysql。
windows系統遠程鏈接:mysql -h 【mysql數據庫服務器的地址】-u root –p #遠程登陸mysql數據庫 服務器
便可在Windows遠程鏈接
-----------------MySQL yum源安裝方法---------------------
在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但爲了須要,仍是要在系統中安裝MySQL,並且安裝完成以後能夠直接覆蓋掉MariaDB。
(因爲yum源上沒有mysql-server。因此必須去官網下載,這裏 咱們用wget命令,直接獲取)wget -i -c
http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl restart mysqld
此時MySQL已經開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,經過以下命令能夠在日誌文件中找出密碼:
grep "password" /var/log/mysqld.log
mysql -uroot -p
輸入初始密碼,此時不能作任何事情,由於MySQL默認必須修改密碼以後才能操做數據庫修改密碼命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
以上報錯是說新設置的密碼過於簡單,解決方式:
//首先按照默認密碼格式複雜度更改
查看MySQL完整的初始密碼規則,查看的前提是必須先用ALTER USER命令更改過密碼(SHOW VARIABLES LIKE 'validate_password%';),
注:密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
1)修改密碼策
由於當前的密碼太複雜不方便後期作實驗,因此使用命令修改密碼策略兩種方式:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_policy=LOW;
注:密碼策略分四種
一、OFF(關閉) 二、LOW(低) 三、MEDIUM(中) 四、STRONG(強)
2)修改密碼長度
上邊改完策略以後咱們在改長度 mysql> SET GLOBAL validate_password_length=4;
都改完以後查看密碼規則mysql> SHOW VARIABLES LIKE 'validate_password%';
接下來就能夠將剛纔的複雜密碼改成簡單的四位的密碼了;
此時還有一個問題,就是由於安裝了Yum Repository,之後每次yum操做都會自動更新,由於當前數據庫已安裝完成,因此把這個卸載掉:
yum remove mysql57-community-release.noarch
mysql_secure_installation
注:執行完初始化命令後須要輸入數據庫root用戶密碼,而後默認如上截圖一路回車便可。(以上截圖問題也可根據本身實際狀況進行選擇)