1. 程式人生 > >MySQL5.6--------基於CentOS6二進制包安裝

MySQL5.6--------基於CentOS6二進制包安裝

mysql dba mysql5.6

1. 背景

* MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。

* MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。

* MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。


2. 選擇的理由

* 支持多種平臺[AIX、FreeBSD、HP-UX、Linux、Mac OS、OpenBSD、Solaris、Windows......]

* 支持並提供多語言API

* 開源,采用了 GPL協議,可以修改源碼來開發自己的 MySQL 系統

* 支持標準SQL語句

* 支持多種存儲引擎

* 使用廣泛 [ 全球top20網站除微軟的Live和Bing之外全部應用MySQL ]

技術分享


3. MySQL安裝方式

* 二制包安裝

* 源碼編譯安裝

* 平臺安裝包,如rpm包[centos,redhat]或deb[debian,ubuntu]包


4. 環境 [關閉selinux]

[[email protected] ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)

[[email protected] ~]# uname -r
2.6.32-642.3.1.el6.x86_64

[[email protected] ~]# getenforce 
Disabled


5. 安裝

* 下載MySQL5.6二進制包 [ 推薦從MySQL官方下載 ]

[[email protected] ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz


* 解壓MySQL二進制包

[[email protected] ~]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

* 移動MySQL二進制包

[[email protected] ~]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/


* 創建軟鏈接

[[email protected] ~]# ln -s /usr/local/mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql


* 創建 mysql 用戶

[[email protected] ~]# useradd -r -s /sbin/nologin mysql


* 創建mysql數據庫文件存放目錄

[[email protected] ~]# mkdir -p /data/mysql_data


* 修改二進制包目錄與數據目錄所屬用戶與所屬用戶組

[[email protected] ~]# chown mysql.mysql -R /usr/local/mysql-5.6.36-linux-glibc2.5-x86_64 /data/mysql_data


* 復制默認配置文件至/etc/my.cnf

[[email protected] ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf


* MySQL初始化 [ 創建數據庫相關文件 ] 看到兩個OK並沒有ERROR錯誤信息表明初始化成功

[[email protected] ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data 
WARNING: The host ‘MySQL‘ could not be looked up with /usr/local/mysql/bin/resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !

Installing MySQL system tables...2017-06-24 03:57:47 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-06-24 03:57:47 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-06-24 03:57:47 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.36) starting as process 20685 ...
2017-06-24 03:57:47 20685 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-06-24 03:57:47 20685 [Note] InnoDB: The InnoDB memory heap is disabled
2017-06-24 03:57:47 20685 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-06-24 03:57:47 20685 [Note] InnoDB: Memory barrier is not used
2017-06-24 03:57:47 20685 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-06-24 03:57:47 20685 [Note] InnoDB: Using Linux native AIO
2017-06-24 03:57:47 20685 [Note] InnoDB: Using CPU crc32 instructions
2017-06-24 03:57:47 20685 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-06-24 03:57:47 20685 [Note] InnoDB: Completed initialization of buffer pool
2017-06-24 03:57:47 20685 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2017-06-24 03:57:47 20685 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2017-06-24 03:57:47 20685 [Note] InnoDB: Database physically writes the file full: wait...
2017-06-24 03:57:47 20685 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2017-06-24 03:57:49 20685 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2017-06-24 03:57:51 20685 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2017-06-24 03:57:51 20685 [Warning] InnoDB: New log files created, LSN=45781
2017-06-24 03:57:51 20685 [Note] InnoDB: Doublewrite buffer not found: creating new
2017-06-24 03:57:51 20685 [Note] InnoDB: Doublewrite buffer created
2017-06-24 03:57:51 20685 [Note] InnoDB: 128 rollback segment(s) are active.
2017-06-24 03:57:51 20685 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-06-24 03:57:51 20685 [Note] InnoDB: Foreign key constraint system tables created
2017-06-24 03:57:51 20685 [Note] InnoDB: Creating tablespace and datafile system tables.
2017-06-24 03:57:51 20685 [Note] InnoDB: Tablespace and datafile system tables created.
2017-06-24 03:57:51 20685 [Note] InnoDB: Waiting for purge to start
2017-06-24 03:57:52 20685 [Note] InnoDB: 5.6.36 started; log sequence number 0
2017-06-24 03:57:58 20685 [Note] Binlog end
2017-06-24 03:57:58 20685 [Note] InnoDB: FTS optimize thread exiting.
2017-06-24 03:57:58 20685 [Note] InnoDB: Starting shutdown...
2017-06-24 03:58:00 20685 [Note] InnoDB: Shutdown completed; log sequence number 1625977
OK

Filling help tables...2017-06-24 03:58:00 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-06-24 03:58:00 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-06-24 03:58:00 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.36) starting as process 20731 ...
2017-06-24 03:58:00 20731 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-06-24 03:58:00 20731 [Note] InnoDB: The InnoDB memory heap is disabled
2017-06-24 03:58:00 20731 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-06-24 03:58:00 20731 [Note] InnoDB: Memory barrier is not used
2017-06-24 03:58:00 20731 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-06-24 03:58:00 20731 [Note] InnoDB: Using Linux native AIO
2017-06-24 03:58:00 20731 [Note] InnoDB: Using CPU crc32 instructions
2017-06-24 03:58:00 20731 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-06-24 03:58:00 20731 [Note] InnoDB: Completed initialization of buffer pool
2017-06-24 03:58:00 20731 [Note] InnoDB: Highest supported file format is Barracuda.
2017-06-24 03:58:00 20731 [Note] InnoDB: 128 rollback segment(s) are active.
2017-06-24 03:58:00 20731 [Note] InnoDB: Waiting for purge to start
2017-06-24 03:58:00 20731 [Note] InnoDB: 5.6.36 started; log sequence number 1625977
2017-06-24 03:58:00 20731 [Note] Binlog end
2017-06-24 03:58:00 20731 [Note] InnoDB: FTS optimize thread exiting.
2017-06-24 03:58:00 20731 [Note] InnoDB: Starting shutdown...
2017-06-24 03:58:02 20731 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK


6. 創建啟動腳本

* 復制啟動腳本到service 服務管理目錄下[ /etc/init.d ]

[[email protected] ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


* 修改mysql啟動腳本 [ /et/init.d/mysqld ]

basedir=/usr/local/mysql
datadir=/data/mysql_data


* 添加腳本執行權限

[[email protected] ~]# chmod +x /etc/init.d/mysqld


* 添加進service服務管理

[[email protected] ~]# chkconfig --add mysqld


7. 服務啟動測試

* 啟動 MySQL 服務

[[email protected] ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to ‘/data/mysql_data/MySQL.err‘.
 SUCCESS!


* 查看服務是否啟動並監聽端口 [默認3306]

[[email protected] ~]# netstat -lntp | grep 3306
tcp        0      0 :::3306           :::*             LISTEN        21366/mysqld


8. 連接測試並修改密碼

* 通過自帶mysql客戶端連接

[[email protected] ~]# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.36 MySQL Community Server (GPL)

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>


* 修改密碼

mysql> set password = password(‘123456‘);
Query OK, 0 rows affected (0.00 sec)


* 重新使用密碼連接

mysql> quit
Bye
[[email protected] ~]# /usr/local/mysql/bin/mysql
ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)

[[email protected] ~]# /usr/local/mysql/bin/mysql -p123456
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 3
Server version: 5.6.36 MySQL Community Server (GPL)

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>



9. 總結


以需求驅動技術,技術本身沒有優略之分,只有業務之分。

本文出自 “sea” 博客,請務必保留此出處http://lisea.blog.51cto.com/5491873/1941595

MySQL5.6--------基於CentOS6二進制包安裝