mysql的幾種安裝方式

第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命令:

1

rpm -ivh MySQL-*

則可以完成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 \

提示:編譯時可配的選項很多.具休可參考結尾附錄或官方文檔。

1
2

make
make install

如果上述操作未出現錯誤.則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源碼安裝包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) 20002017, 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)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章