MySQL簡介與安裝

MySQL簡介與安裝

 

1. MySQL簡介

1.1 MySQL發展史

1979年,報表工具Unireg出現。
1985 年,以瑞典David Axmark 爲首,成立了一家公司(AB前身),IASM引擎出現。
1990年,提供SQL支持。
1999-2000年,MySQL AB公司成立,並公佈源碼,開源化。
2000年4月BDB引擎出現,支持事務。
2008年1月16號 MySQL被Sun公司收購。
2009年04月20日Oracle收購Sun公司,MySQL 轉入Oracle 門下。mysql

如今,愈來愈多的公司開始使用MySQL:linux

 

1.2 MySQL特色

開源
社區版免費
簡單,使用方便,可靠
穩定、安全
社區活躍面試

 

1.3 MySQL產品線

1) 3.26--5.2版本
    正宗後代
    Centos五、6中默認有5.1版本
    Centos7中默認是MariaDB
    5.4--5.7 ,8.0版本
    借鑑社區好的貢獻,進一步開發的版本
    主流版本:5.5 5.6 5.7
    講課版本5.6最新版sql

2) MySQL Cluster 6.0 版本&更高
    相似於Oracle RAC,硬件要求高。
    通常各大網站沒有人用數據庫

3) 版本選擇centos

    5.6:選擇GA版(General Availability),GA版發佈6個月-1年以上的版本,最好是個雙數版本好比:5.6.36 、5.6.38 、5.6.34安全

    5.7:5.7.17之後的GA版,且發行6個月以上好比:5.7.18 、5.7.20app

4) 面試時可能會問到的關於MySQL版本的問題
    問:你公司用mysql嗎
    答:yes
    問:公司用什麼版本
    答:5.6.36
    問:爲何要用這個版本?
    答:行業裏面有一個規範,選擇主流的5.6 5.7 GA 6個月以上的版本。咱們公司選擇這個版本是基於公司業務特色來決定的。另外由於開發階段用的版本也是5.6的。爲了保持版本一致。運維

 

2. MySQL安裝

2.1 MySQL安裝方式

1) RPM、Yum:安裝方便、安裝速度快,沒法定製
2) 二進制:不須要安裝,解壓便可使用,不能定製功能
3) 編譯安裝:可定製,安裝慢。
    5.5以前:./configure make make install
    5.5以後:cmake gmake
4) 先編譯,而後製做rpm,製做yum庫,而後yum安裝。
    簡單、速度快、可定製,比較複雜 製做時間長
5) 企業選擇安裝方式
    中小企業:以上方式均可以,運維偏向編譯,dba偏向選擇二進制。
    大型企業:能夠選擇4工具

 

2.2 編譯安裝MySQL(5.6.36)

2.2.1 環境準備

1) 克隆一個模板機器(使用centos6),克隆完作快照
2) IP 10.0.0.52 主機名db02
3) iptables selinux
4) 下載好5.6.36
5) 安裝依賴包

yum install -y ncurses-devel libaio-devel

6) 安裝cmake

yum install cmake –y

7) 建立用戶

useradd -s /sbin/nologin -M mysql
id mysql

2.2.2 配置並編譯

1) 上傳或下載壓縮包並解壓縮

mkdir /server/tools
cd /server/tools
ls -l mysql-5.6.36.tar.gz

tar xf mysql-5.6.36.tar.gz
cd mysql-5.6.36

我在實際操做中,發現還有兩個目錄須要建立/application/mysql-5.6.36 /application/mysql-5.6.36/tmp/

2) 進行配置

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \
-DMYSQL_DATADIR=/application/mysql-5.6.36/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

 

PS1:重要配置項解釋

配置預設置的數據庫必要參數
-DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 ---安裝路徑
-DMYSQL_DATADIR=/application/mysql-5.6.36/data ---數據庫存放數據
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock ---數據庫套接字文件位置

PS2:硬編碼程序,將以上配置直接加入到mysql程序中
mysqld_safe
mysqld
mysql
mysqldump
mysqladmin

PS3:源碼包安裝方式和cmake有所不一樣:

源碼包方式安裝前的預配置
./configure --prefix --with --enable --disable (cmake)
做用:告訴後續make(編譯)的時候都要開啓或者關閉軟件的哪些功能

 

3) 編譯

make && make install

make:將c的源代碼編譯成計算機可以識別的格式(二進制)。

make install:將編譯好的程序文件拷貝到指定安裝目錄,修改權限。

4) 建立軟連接

ln -s /application/mysql-5.6.36/ /application/mysql

5) 複製配置文件

cp support-files/my*.cnf /etc/my.cnf

6) 初始化數據庫

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

NOTE:初始化數據庫(建庫),初始化的是mysql基本運行所必須的一些「系統庫」(元數據)。

7) 設置屬主和屬組

chown -R mysql.mysql /application/mysql/

8) 將MySQL啓動中止重啓的腳本添加到init.d文件下,並改名爲mysqld

cp support-files/mysql.server /etc/init.d/mysqld

9) 設置MySQL服務腳本的權限爲700

chmod 700 /etc/init.d/mysqld

10) 配置MySQL服務爲開機自啓動(能夠根據實際須要,選擇是否開機自啓動)

chkconfig mysqld on
chkconfig --list mysqld

11) 啓動MySQL

/etc/init.d/mysqld start

12) 查看MySQL是否已經啓動成功

netstat -lntup|grep 3306

13) 添加環境變量,並運行source使環境變量當即生效

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
tail -1 /etc/profile

source /etc/profile
echo $PATH

14) 安裝完成運行MySQL

mysql

15) 設置MySQL數據庫root管理員賬號的初始密碼

mysqladmin -uroot -p password 'oldboy123'

mysql
-uroot -poldboy123

16) 查詢數據庫中已有用戶,刪除掉沒用的用戶和沒用的數據庫

select user,host from mysql.user;

drop user ''@'db01';
drop user ''@'localhost';
drop user 'root'@'db01';
drop user 'root'@'::1';
drop user 'root'@'127.0.0.1';

select user,host,password from mysql.user;

drop database test;
show databases;

 17) 查看錯誤日誌

tail -100 /application/mysql/data/db02.err 

 

3. MySQL忘記root密碼如何操做

3.1 MySQL5.6

1) 停數據庫

/etc/init.d/mysqld stop

 

2) 以「安全模式」登陸數據庫,--skip-grant-tables --skip-networking

/application/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &

 

3) 修改密碼

update mysql.user set password=PASSWORD('110') where user='root' and host='localhost';

select user,host,password from mysql.user;

 

4) 關閉數據庫,並正常啓動數據庫,暫時使用pkill殺掉mysqld進程,後面再介紹其它方法

pkill mysqld
/etc/init.d/mysqld start

 

3.2 MySQL5.7

5.7中再也不使用password字段進行存儲密碼,使用authentication_string來替代,修改命令以下:

update mysql.user set authentication_string=PASSWORD('123') where user='root' and host='localhost';
相關文章
相關標籤/搜索