第1章 MySQL數據庫安裝介紹
在當今的大中型互聯網企業裏,MySQL數據庫服務幾乎都是運行在Linux系列操作系統上,當然,你也可以運行在Windows/Unix等商業操作系統上,大中型互聯網企業使用開源領域的產品MySQL數據庫目的是,軟件代碼的開放性和以及無版權免費應用節約成本.因此推薦中小企業採用LAMP/LNMP網站架構。
不同場景不同版本的MySql的安裝可以有多種方法。
1.1 yum/rpm方式安裝MySQL
MySQL官方網站提供不同版本的RPM安裝包,並且針對不同硬件或操作系統平臺,又分爲不同類型的安裝包,大家都可以在官方網站下載頁面進行選擇,國內也有一些互聯網公司提供了鏡像,比如網易,阿里雲公司提供的鏡像資源就非常不錯。
注意:yum/rpm方式安裝MySQL適合所有MySQL軟件產品系列。
1.1.1 rpm包方式安裝mysql
rpm包的安裝非常簡單,以mysql-5.1.40爲例,我們可以光盤或者網上下載到四個安裝包:
1 2 3 4
| MySQL-client-community-5.1.40-0.rhel5.x86_64.rpm MySQL-devel-community-5.1.40-0.rhel5.x86_64.rpm MySQL-shared-community-5.1.40-0.rhel5.x86_64.rpm MySQL-server一community-5.1.40-0.rhel5.x86_64.rpm |
其中,我們必須安裝MySQL-server*和MySQLclient*軟件包,對於另外二個則可視實際需要,但是建議一起安裝,爲此我們可以把這四個RPM放置於某個目錄中,然後執行shell命令:
則可以完成MySQL軟件安裝任務,剩下的就是如何配置的問題了。
1.1.2 yum方式安裝mysql
yum方式安裝mysql安裝極其簡單,只要執行一下命令即可:
1
| yum install mysql-server |
1.1.2.1 yum/rpm方式安裝MySQL應用場景
yum/rpm安裝適合對數據庫要求不太高的場合,例如併發不大,公司內部,企業內部的一些應用場景,大的門戶把源碼根據企業的需求製作成rpm,搭建yum倉庫,yum install xxx -y。
參考資料:
1.2 常規方式編譯安裝MySQL
第一條最正宗的產品線5.1及以前:
所謂常規方式編譯安裝MySQL就是延續早期MySQL的3部曲安裝方式,即./configure;make;make install.生產場景的具體命令及參數爲:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ./configure \ --prefix=/usr/local/mysql-5.1.72 \ --with-unix-socket-path=/usr/local/mysql-5.1.72/tmp/mysql.sock \ --localstatedir-/usr/local/mysql-5.1.72/data \ --enable-assembler \ --enable-thread-safe-client \ --with-mysqld-user=mysql \ --with-big-tables \ --without-debug \ --with-pthread \ --enable-assembler \ --with-extra-charsets=complex \ --with-readline \ --with-ssl \ --with-embedded-server \ --enable-local-infile \ --with-plugins=partition, innobase \ --with-mysqld-ldflags=-all-static \ --with-client-ldflags=-all-static make make install |
提示:此種方式適合所有MySQL5.0.xx-5.1.xx產品系列,是最常規的編譯方式。
1.3 採用cmake方式編譯安裝MySQL
由於MySQL5.5.xx-5.6.xx產品系列特殊性,所以編譯方式也和早期的產品安裝方式不同,採用cmake或gmake方式編譯安裝。即./configure;make;make install,生產場景的具體命令及參數爲:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| tar zxf mysql-5.5.32.tar.gz cd mysql-5.5.32 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysq1-5.5.32 \ -DMYSQL_DATADIR=/usr/local/mysq1-5.5.32/data \ -DMYSQL_UNIX_ADDR=//usr/local/mysq1-5.5.32/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSET=gbk,gb2312,utf8,ascii \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITHOUT_PRATITION_STORAGE_ENGINE=1 \ -DWITN_FAST_MUTEXES=1 \ -DWITN_ZLIB=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_READLINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_DEBUG=1 \ |
提示:編譯時可配的選項很多.具休可參考結尾附錄或官方文檔。
如果上述操作未出現錯誤.則MySQL5.5.32軟件cmake方式的安裝就算成功了。
1.4 採用二進制方式免編譯安裝MySQL
採用二進制方式免編譯安裝mysql.這種方法和yum/rpm包安裝方式類似.適合各類MySQL產品系列,不需要複雜的編譯設裏及編譯時間等待,直接解壓下載的軟件包,初始化即可完成mysgl的安裝啓動。
1.5 如何正確選擇MySQL的安裝方式
yum/rpm安裝適合對數據庫要求不太高的場合,例如併發不大,公司內部,企業內部的一些應用場景.二進制免安裝比較簡單方便,適合5.0-5.1和5.5-5.6系列,是很多專業DBA的選擇,普通運維人員多采用編譯的方式,5.0-5.1系列就是常規編譯方式,5.5-5.6系列就是cmake編譯方式。
所以綜合來講,這些安裝方式都是可以使用的,只是不同層次的人的習慣不同,性能差距不是很大。
建議選擇:首先是mysql5.5及以上的版本,安裝方式機器數量少的話,推薦cmake編譯方式,這是大多數運維人員的選擇。數量多的話就用二進制免安裝,也是沒問題的,這是某些DBA的偏愛。
第2章 安裝MySQL
2.1 編譯安裝MySQL
2.1.1 系統環境
2.1.1.1 CentOS 6.9:
1 2 3 4 5 6 7 8 9 10
| [root@db02 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@db02 ~]# uname -r 2.6.32-696.el6.x86_64 [root@db02 ~]# service iptables status iptables: Firewall is not running. [root@db02 ~]# getenforce Disabled [root@db02 ~]# hostname -I 10.0.0.42 172.16.1.42 |
2.1.1.2 CentOS 7.2:
1 2 3 4 5 6 7 8 9 10 11 12
| [root@db01 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@db01 ~]# uname -r 3.10.0-327.el7.x86_64 [root@db01 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) [root@db01 ~]# getenforce Disabled [root@db01 ~]# hostname -I 10.0.0.10 172.16.1.10 |
2.1.2 安裝依賴程序
1 2 3 4
| [root@db02 ~]# yum install -y ncurses-devel libaio-devel [root@db02 ~]# rpm -qa ncurses-devel libaio-devel libaio-devel-0.3.107-10.el6.x86_64 ncurses-devel-5.7-4.20090207.el6.x86_64 |
2.1.3 安裝Cmake編譯軟件
1 2 3
| [root@db02 ~]# yum install -y cmake [root@db02 ~]# rpm -qa cmake cmake-2.8.12.2-4.el6.x86_64 |
2.1.4 添加mysql用戶
1 2 3
| [root@db02 ~]# useradd -s /sbin/nologin -M -u800 mysql [root@db02 ~]# id mysql uid=800(mysql) gid=800(mysql) groups=800(mysql) |
2.1.5 獲取MySQL軟件包
MySQL軟件包下載地址爲:
MySQL軟件 | 軟件名 |
MySQL源碼安裝包 | mysql-5.7.20.tar.gz |
MySQL源碼安裝包(帶boost版本) | mysql-boost-5.7.20.tar.gz |
MySQL二進制安裝包 | mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz |
說明:MySQL5.7版本開始編譯安裝的時候需要boost軟件支持。
提示:在生產場景中二進制和源碼包兩種安裝方法都是可以使用的,其應用場景一般沒什麼太大差別,不同之處在於二進制的安裝包較大,名字和源碼包也有些區別,二進制安裝過程比源碼更快。
2.1.6 編譯安裝MySQL
2.1.6.1 CentOS 6.9:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@db02 ~]# cd /server/tools/ [root@db02 tools]# tar xf mysql-5.6.36.tar.gz [root@db02 tools]# cd mysql-5.6.36
# cmake編譯安裝 [root@db02 mysql-5.6.36]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.36 \ -DMYSQL_DATADIR=/usr/local/mysql-5.6.36/data \ -DMYSQL_UNIX_ADDR=/usr/local/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 [root@db02 mysql-5.6.36]# make && make install |
2.1.6.2 CentOS 7.2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@db01 ~]# cd /server/tools/ [root@db01 tools]# tar xf mysql-boost-5.7.20.tar.gz [root@db01 tools]# cd mysql-5.7.20/ [root@db01 mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.20 \ -DMYSQL_DATADIR=/usr/local/mysql-5.7.20/data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.20/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_BOOST=/server/tools/mysql-5.7.20/boost \ # 與編譯MySQL 5.6.x版本不同之處 -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0 [root@db01 mysql-5.7.20]# make && make install |
提示:MySQL編譯安裝時間較長(尤其在CentOS 7上編譯安裝),請耐心等待。
2.1.7 創建mysql目錄軟鏈接
2.1.7.1 CentOS 6.9:
1
| [root@db02 ~]# ln -s /usr/local/mysql-5.6.36/ /usr/local/mysql |
2.1.7.2 CentOS 7.2:
1
| [root@db01 ~]# ln -s /usr/local/mysql-5.7.20/ /usr/local/mysql |
2.1.8 創建sock目錄
1
| [root@db02 ~]# mkdir -p /usr/local/mysql/tmp |
2.1.9 複製配置文件
2.1.9.1 CentOS 6.9:
1 2
| [root@db02 ~]# cp /usr/local/mysql/support-files/my*.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf' y |
2.1.9.2 CentOS 7.2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 手動編寫配置文件 [root@db01 ~]# mv /etc/my.cnf{,.bak} [root@db01 ~]# vim /etc/my.cnf [client] port=3306 socket=/usr/local/mysql/tmp/mysql.sock
[mysqld] port=3306 user=mysql socket=/usr/local/mysql/tmp/mysql.sock pid-file=/usr/local/mysql/data/mysql.pid basedir=/usr/local/mysql datadir=/usr/local/mysql/data |
2.1.10 初始化及配置數據庫
2.1.10.1 CentOS 6.9:
1 2 3 4 5
| [root@db02 ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql 2017-11-13 11:54:11 39514 [Note] InnoDB: Shutdown completed; log sequence number 1625977 OK # 安裝成功標誌 2017-11-13 11:54:13 39536 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK # 安裝成功標誌 |
2.1.10.2 CentOS 7.2:
1 2
| [root@db01 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2017-11-13T08:27:06.432840Z 1 [Note] A temporary password is generated for root@localhost: m*znf;srR7:, # 安裝成功標誌爲自動生成root密碼 |
2.1.11 設置mysql目錄權限
1
| [root@db02 ~]# chown -R mysql.mysql /usr/local/mysql/ |
提示:如果出現問題可以嘗試直接給原目錄授權。
2.1.12 複製mysql啓動文件
1 2
| [root@db02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@db02 ~]# chmod 700 /etc/init.d/mysqld |
2.1.13 設置mysql開機自啓動
2.1.13.1 CentOS 6.9:
1 2 3
| [root@db02 ~]# chkconfig mysqld on [root@db02 ~]# chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
2.1.13.2 CentOS 7.2:
1 2
| [root@db01 ~]# echo "/etc/init.d/mysqld start" >> /etc/rc.local [root@db01 ~]# chmod +x /etc/rc.local |
2.1.13.3 設置mysql全局路徑
1 2 3 4 5 6
| [root@db02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile [root@db02 ~]# tail -1 /etc/profile PATH=/usr/local/mysql/bin/:$PATH [root@db02 ~]# source /etc/profile [root@db02 ~]# echo $PATH /usr/local/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin |
2.1.14 啓動mysql
1 2 3 4
| [root@db02 ~]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! [root@db02 ~]# netstat -lntup|grep 330 tcp 0 0 :::3306 :::* LISTEN 39938/mysqld |
2.2 編譯參數詳解
2.2.1 安裝參數選項
在下表中,“CMAKE_INSTALL_PREFIX”的值表示的是安裝根目錄,其他參數值的路徑都是相對於根目錄的,當然也可以直接使用絕對路徑,具體如下:
參數值說明 | 配置選項 | CMak選項 |
安裝根目錄 | --prefix=/usr | -DCMAKE_INSTALL_PREFIX=/usr |
mysqld目錄 | --libexecdir=/usr/sbin | -DINSTALL_SBINDIR=sbin |
數據存儲目錄 | --localstatedir=/var/lib/mysql | -DMYSQL_DATADIR=/var/lib/mysql |
配置文件(my.cnf)目錄 | --sysconfdir=/etc/mysql | -DSYSCONFDIR=/etc/mysql |
插件目錄 | --with-plugindir=/usr/lib64/mysql/plugin | -DINSTALL_PLUGINDIR=lib64/mysql/plugin |
手冊文件目錄 | --mandir=/usr/share/man | -DINSTALL_MANDIR=share/man |
共享數據目錄 | --sharedstatedir=/usr/share/mysql | -DINSTALL_SHAREDIR=share |
Library庫目錄 | --libdir=/usr/lib64/mysql | -DINSTALL_LIBDIR=lib64/mysql |
Header安裝目錄 | --includedir=/usr/include/mysql | -DINSTALL_INCLUDEDIR=include/mysql |
信息文檔目錄 | --infodir=/usr/share/info | -DINSTALL_INFODIR=share/info |
2.2.2 存儲引擎選項
存儲引擎是以插件的形式存在的,所以該選項可以控制插件的構建,比如指定使用某個特定的引擎:
參數值說明 | 配置選項 | CMak選項 |
安裝根目錄 | --with-plugins=csv,myisam,
myisammrg,heap,innobase, archive,blackhole | -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 |
提示:CMake中也可以使用“ON”來替代數字1,它們是等效的。
2.2.3 庫文件加載選項
該選項指明Mysql使用庫的情況:
2.2.4 其他選項
CMake編譯選項支持大部分之前版本的MySQL編譯選項,新老編譯選項的差別在於:之前的是小寫,現在全部變成了大寫,之前採用雙橫線,現在使用單橫線,之前使用的破折號,現在取而代之的是使用下劃線:
參數值說明 | 配置選項 | CMak選項 |
TCP/IP端口 | --with-tcp-port-=3306 | -DMYSQL_TCP_PORT=3306 |
UNIX socket文件 | --with-unix-socket-path=/tmp/mysqld.sock | -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock |
啓用加載本地數據 | --enable-local-infile | -DENABLED_LOCAL_INFILE=1 |
擴展字符支持 | --with-extra-charsets=all(默認:all) | -DEXTRA_CHARSETS=all(默認:all) |
默認字符集 | --with-charset=utf8 | -DDEFAULT_CHARSET=utf8 |
默認字符校對 | --with-collation=utf8_general_ci | -DDEFAULT_COLLATION=utf8_general_ci |
Build the server | --with-server | 無 |
嵌入式服務器 | --with-embedded-server | -DWITH_EMBEDDED_SERVER=1 |
libmysqld權限控制 | --with-embedded-privilege-control | 無 |
安裝文檔 | --without-docs | 無 |
Big tables支持 | --with-big-tables, --without-big-tables | 無 |
mysqld運行用戶 | --with-mysqld-user=mysql | -DMYSQL_USER=mysql |
調試模式 | --without-debug(默認禁用) | -DWITH_DEBUG=0(默認禁用) |
GIS支持 | --with-geometry | 無 |
社區功能 | --enable-community-features | 無 |
Profiling | --disable-profiling(默認啓用) | -DENABLE_PROFILING=0(默認啓用) |
pstack | --without-pstack | 無(新版移除該功能) |
彙編字符串函數 | --enable-assembler | 無 |
構建類型 | --build=x86_64-pc-linux-gnu | 沒有等效參數 |
交叉編譯主機 | --host=x86_64-pc-linux-gnu | 沒有等效參數 |
客戶端標誌 | --with-client-ldflags=-lstdc++ | 無 |
線程安全標誌 | --enable-thread-safe-client | 無 |
註釋存儲類型 | --with-comment='string' | -DWITH_COMMENT='string' |
Shared/static binaries | --enable-shared --enable-static | 無 |
內存使用控制 | --with-low-memory | 無 |
2.2.5 CentOS 7完整編譯參數
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
2.3 二進制安裝MySQL
2.3.1 系統環境
同編譯安裝。
2.3.2 添加mysql用戶
1 2 3
| [root@db02 ~]# useradd -s /sbin/nologin -M -u800 mysql [root@db02 ~]# id mysql uid=800(mysql) gid=800(mysql) groups=800(mysql) |
2.3.3 解壓並移動到程序目錄
2.3.3.1 CentOS 5.6.x
1 2 3
| [root@lb02 ~]# cd /server/tools/ [root@lb02 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz [root@lb02 tools]# mv mysql-5.6.34-linux-glibc2.5-x86_64 /usr/local/mysql-5.6.34 |
2.3.3.2 CentOS 5.7.x
1 2 3
| [root@lb02 ~]# cd /server/tools/ [root@lb02 tools]# tar xf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz [root@lb02 tools]# mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql-5.7.18 |
2.3.4 創建mysql軟鏈接
2.3.4.1 CentOS 5.6.x
1
| [root@test local]# ln -s /usr/local/mysql-5.6.34/ /usr/local/mysql |
2.3.4.2 CentOS 5.7.x
1
| [root@lb02 ~]# ln -s /usr/local/mysql-5.7.18/ /usr/local/mysql |
2.3.5 賦予安裝目錄權限
1
| [root@lb02 ~]# chown -R mysql.mysql /usr/local/mysql |
2.3.6 初始化數據庫
2.3.6.1 CentOS 5.6.x
1 2 3 4 5
| [root@lb02 ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql 2017-11-13 18:36:03 24774 [Note] InnoDB: Shutdown completed; log sequence number 1625977 OK 2017-11-13 18:36:09 24796 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK |
2.3.6.2 CentOS 5.7.x
1 2
| [root@lb02 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2017-11-13T09:52:24.770847Z 1 [Note] A temporary password is generated for root@localhost: <t#ip&*F97+ |
2.3.7 複製啓動腳本
2.3.7.1 CentOS 5.6.x
1 2
| [root@lb02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@lb02 ~]# chmod 700 /etc/init.d/mysqld |
2.3.7.2 CentOS 5.7.x
1 2
| [root@lb02 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@lb02 ~]# chmod 700 /etc/init.d/mysqld |
2.3.8 編輯配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13
| [root@db01 ~]# mv /etc/my.cnf{,.bak} [root@db01 ~]# vim /etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock
[mysqld] port=3306 user=mysql socket=/tmp/mysql.sock pid-file=/usr/local/mysql/data/mysql.pid basedir=/usr/local/mysql datadir=/usr/local/mysql/data |
2.3.9 設置開機自啓動
1 2
| [root@lb02 ~]# chkconfig --add mysqld [root@lb02 ~]# chkconfig mysqld on |
2.3.10 設置全局變量
1 2
| [root@lb02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile [root@lb02 ~]# source /etc/profile |
2.3.11 啓動服務
1
| [root@lb02 ~]# /etc/init.d/mysqld start |
2.4 Yum安裝MySQL
2.4.1 添加MySQL源
2.4.1.1 CentOS 6:
1 2
| [root@lb02 ~]# wget https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm [root@lb02 ~]# rpm -ivh mysql57-community-release-el6-11.noarch.rpm |
2.4.1.2 CentOS 7:
1 2
| [root@lb02 ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [root@lb02 ~]# rpm -ivh mysql57-community-release-el6-11.noarch.rpm |
2.4.2 安裝MySQL
1
| [root@lb02 ~]# yum install -y mysql-server |
2.4.3 文件安裝明細
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| [root@test ~]# rpm -ql mysql-community-server /etc/init.d/mysqld /etc/logrotate.d/mysql /etc/my.cnf /etc/my.cnf.d /usr/bin/innochecksum /usr/bin/lz4_decompress /usr/bin/my_print_defaults /usr/bin/myisam_ftdump /usr/bin/myisamchk /usr/bin/myisamlog /usr/bin/myisampack /usr/bin/mysql_install_db /usr/bin/mysql_plugin /usr/bin/mysql_secure_installation /usr/bin/mysql_ssl_rsa_setup /usr/bin/mysql_tzinfo_to_sql /usr/bin/mysql_upgrade /usr/bin/mysqld_multi /usr/bin/mysqld_safe /usr/bin/mysqldumpslow /usr/bin/perror /usr/bin/replace /usr/bin/resolve_stack_dump /usr/bin/resolveip /usr/bin/zlib_decompress /usr/sbin/mysqld /var/lib/mysql /var/lib/mysql-files /var/lib/mysql-keyring /var/run/mysqld |
第3章 MySQL基本使用
3.1 更改管理員密碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 更改管理員密碼:mysqladmin -u root -p舊密碼 password '新密碼' [root@db02 ~]# mysqladmin -uroot password '12345678' # 或 mysqladmin password '12345678' [root@db02 ~]# mysql -uroot -p12345678 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> |
3.2 數據庫操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+
4 rows in set (0.02 sec)
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
28 rows in set (0.01 sec)
# 刪除不需要的數據庫 mysql> drop database test; Query OK, 0 rows affected (0.00 sec)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
3 rows in set (0.00 sec) |
3.3 用戶操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| mysql> select user,host,password from mysql.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | | root | db02 | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | db02 | | +------+-----------+-------------------------------------------+
6 rows in set (0.00 sec)
# 刪除不需要不安全的用戶 mysql> drop user ''@'db02'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'db02'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'127.0.0.1'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user 'root'@'::1'; Query OK, 0 rows affected (0.00 sec)
mysql> drop user ''@'localhost'; Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | +------+-----------+-------------------------------------------+
1 row in set (0.00 sec) |