1、MySQL介紹mysql
MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle公司。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性linux
特色:c++
性能卓越,服務穩定,不多出現宕機sql
開放源代碼且無版權制約,自主性強,使用成本低數據庫
支持多操做系統,提供多種API接口,支持多種開發語言(Python,Php,Java等)vim
2、MySQL安裝方式安全
1.yum安裝 (適合對數據庫要求不過高的場合)bash
大的門戶網站把源碼根據企業需求製做成rpm,搭建yum倉庫tcp
2.常規方式編譯安裝性能
.configure/make/make install (mysql 5.1及之前)
cmake /make /make install
序號 |
MySQL安裝方式 |
特色說明 |
1 |
yum/rpm安裝 |
簡單,部署速度快,可是無法定製安裝,適合新手 |
2 |
二進制安裝 |
解壓軟件,簡單配置後就能夠使用,不用安裝,部署速度較快,專業DBA經常使用這種方式,軟件名如:mysql-5.5.50-linux2.6-x86_64.tar.gz |
3 |
源碼編譯安裝 |
能夠定製安裝(指定字符集,安裝路徑等),可是安裝時間長 |
4 |
源碼軟件結合yum/rpm安裝 |
把源碼軟件製做成符合要求的rpm,放到yum倉庫,而後經過yum來安裝,結合了1和3的優勢,安裝快速,能夠任意定製參數 |
3、MySQL安裝實戰(源碼cmake方式編譯安裝MySQL)
1.下載mysql/cmake安裝包
1
2
3
|
[root@master ~]
# mkdir /home/tools
[root@master ~]
# wget –P /home/tools https://cmake.org/files/v2.8/cmake-2.8.12.tar.gz
[root@master ~]
# wget -P /home/tools/ http://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.50.tar.gz
|
2.創建帳號
1
2
3
4
5
6
|
[root@master ~]
# groupadd mysql
[root@master ~]
# useradd -s /sbin/nologin -g mysql -M mysql
useradd
參數說明:
-s
/sbin/nologin
# 表示禁止該用戶登陸,只需角色存在便可,增強安全
-g mysql
# 指定屬組
-M
# 表示不建立用戶家目錄
|
3.配置安裝環境
建立目錄並受權
1
2
3
4
|
[root@master ~]
# mkdir -p /usr/local/mysql
[root@master ~]
# mkdir -p /db/mysql
[root@master ~]
# chown -R mysql.mysql /usr/local/mysql
[root@master ~]
# chown -R mysql.mysql /db
|
安裝依賴
1
|
[root@master ~]
# yum install gcc gcc-c++ make cmake ncurses-devel bison perl -y
|
配置解析
1
2
3
4
|
[root@master ~]
# hostname
master.opsedu.com
[root@master ~]
# vim /etc/hosts
192.168.10.66 master
# 添加一條
|
4.安裝mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
[root@master tools]
# tar -zxf mysql-5.5.50.tar.gz
[root@master tools]
# cd mysql-5.5.50
[root@master mysql-5.5.50]
# cmake \
> -DCMAKE_INSTALL_PREFIX=
/usr/local/mysql/
\
> -DMYSQL_DATADIR=
/db/mysql
\
> -DMYSQL_TCP_PORT=3306 \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DEXTRA_CHARSETS=all \
> -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_PARTITION_STORAGE_ENGINE=1 \
> -DWITH_FAST_MUTEXES=1 \
> -DWITH_ZLIB=bundled \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_READLINE=1 \
> -DWITH_EMBEDDED_SERVER=1 \
> -DWITH_DEBUG=0 \
> -DMYSQL_UNIX_ADDR=
/tmp/mysql
.sock
[root@master mysql-5.5.50]
# make # 編譯
[root@master mysql-5.5.50]
# make install
|
5.初始化mysql
配置mysql環境變量
1
2
|
[root@master mysql-5.5.50]
# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@master mysql-5.5.50]
# source /etc/profile
|
查看配置文件
1
2
3
4
5
6
7
|
[root@master mysql-5.5.50]
# ll support-files/*.cnf
-rw-r--r-- 1 root root 4667 Jul9 01:26 support-files
/my-huge
.cnf
-rw-r--r-- 1 root root 19759 Jul 9 01:26 support-files
/my-innodb-heavy-4G
.cnf
-rw-r--r-- 1 root root 4641 Jul9 01:26 support-files
/my-large
.cnf
-rw-r--r-- 1 root root 4652 Jul9 01:26 support-files
/my-medium
.cnf
-rw-r--r-- 1 root root 2816 Jul9 01:26 support-files
/my-small
.cnf
[root@master mysql-5.5.50]
# /bin/cp support-files/my-small.cnf /etc/my.cnf # copy配置文件
|
建立mysql數據庫文件
1
|
[root@master mysql-5.5.50]
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/db/mysql --user=mysql
|
以上命令主要是生成mysql庫及相關文件:
這些文件是mysql正確運行所必需的基本數據庫文件,其功能是對mysql權限、狀態等進行管理
啓動mysql
1
2
3
|
[root@master mysql-5.5.50]
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@master mysql-5.5.50]
# netstat -lnt|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
|
配置mysql開機啓動
1
2
3
4
|
[root@master mysql-5.5.50]
# cp support-files/mysql.server /etc/init.d/mysqld
[root@master mysql-5.5.50]
# chmod 700 /etc/init.d/mysqld
[root@master mysql-5.5.50]
# chkconfig --add mysqld
[root@master mysql-5.5.50]
# chkconfig mysqld on
|
初始化碰見錯誤
示例1:
WARING:The host ‘mysql’ could not be locked up with resolveip
須要修改主機名的解析,使其和usernae –n同樣
示例2:
ERROR:1004 Can’t create file ‘/tmp/#sql300e_1_0.frm’(errno:13)
緣由是/tmp權限有問題(不解決,後面可能沒法登錄數據庫)
6.後續操做
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@master mysql-5.5.50]
# mysql # mysql安裝好後,默認沒有密碼
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection
id
is 1
Server version: 5.5.50 Source distribution
Copyright (c) 2000, 2016, 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>
# 爲mysql增長(設定)密碼
[root@master mysql-5.5.50]
# mysqladmin -uroot password 'q.123456'
|
7. 單實例MySQL自動部署腳本