CentOS6.7 64位環境下安裝部署MySQL-5.7.13

來源:互聯網
上載者:User

CentOS6.7 64位環境下安裝部署MySQL-5.7.13

系統內容:
[root@localhost ~]# cat /etc/RedHat-release
CentOS release 6.7 (Final)
[root@localhost tools]# uname -a
Linux localhost 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost tools]#
軟體準備:
[root@localhost tools]# pwd
/opt/tools
[root@localhost tools]# ll
total 674208
-rw-r--r-- 1 root root 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root  50516207 May 25 12:01 mysql-5.7.13.tar.gz
[root@localhost tools]#
解壓安裝:
[root@localhost tools]# tar xf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
[root@localhost tools]# ll
total 674212
drwxr-xr-x 9 7161 wheel      4096 May 25 15:04 mysql-5.7.13-linux-glibc2.5-x86_64
-rw-r--r-- 1 root root  639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root  50516207 May 25 12:01 mysql-5.7.13.tar.gz
[root@localhost tools]#
[root@localhost tools]# mv mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost tools]#
初始化操作(產生初始密碼):
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
2016-07-22T09:58:15.001776Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-07-22T09:58:15.062066Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-22T09:58:15.073009Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cebfb8a6-4ff2-11e6-8c8d-005056a01a07.
2016-07-22T09:58:15.074370Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-07-22T09:58:15.075736Z 1 [Note] A temporary password is generated for root@localhost: k_1ljzVh3<-,
[root@localhost mysql]#
PS: mysql5.7新特性:由上面可以看出, mysql_install_db 已經不再推薦使用了,建議改成 mysqld --initialize 完成執行個體初始化。
 
加入MySQL為系統服務:
[root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list|grep mysqld
mysqld          0:off  1:off  2:on    3:on    4:on    5:on    6:off
[root@localhost mysql]#chmod 755 /etc/init.d/mysqld
 
MySQL服務啟動、重啟、停止
[root@localhost mysql]# serivce mysqld start
[root@localhost mysql]# serivce mysqld stop
[root@localhost mysql]# serivce mysqld restart
[root@localhost mysql]#
設定環境變數:
[root@localhost mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost mysql]#
檢查MySQL是否能開啟

[root@localhost mysql]# cd /usr/local/mysql
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# ./mysql.server start
Starting MySQL.. SUCCESS!
若改用了, 則在啟動服務時會出現如下錯誤:
# ./support-files/mysql.server start
./support-files/mysql.server: line 276: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
這時候我們需要修改/support-files/mysql.server檔案的basedir和datadir目錄路徑為我們正確的mysql的basedir和datadir路徑, 如下:
# vim support-files/mysql.server
--------------------------
...
basedir=/usr/local/mysql
datadir=/data/mysql/data
...
--------------------------
# ./support-files/mysql.server start
Starting MySQL.. SUCCESS!
建立設定檔
將預設產生的my.cnf備份
# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost support-files]# cp my-default.cnf  /etc/my.cnf
初始化mysql使用者root的密碼
先將mysql服務停止
# service mysqld stop
進入mysql安裝目錄, 執行:
# cd /usr/local/mysql
# ./bin/mysqld_safe --skip-grant-tables --skip-networking&
[1] 6225
[root@localhost mysql]# 151110 02:46:08 mysqld_safe Logging to '/data/mysql/data/localhost.localdomain.err'.
151110 02:46:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data


另外開啟一個終端(p.s. 如果是ssh串連登入的, 另外建立一個ssh串連即可), 執行操作如下:


# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, 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> use mysql;
Database changed
mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> update user set authentication_string = PASSWORD('123456') where user = 'root';
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 1


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> \s
mysql  Ver 14.14 Distrib 5.7.13, for linux-glibc2.5 (x86_64) using  EditLine wrapper


Connection id:          62
Current database:
Current user:          root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:        5.7.13-log MySQL Community Server (GPL)
Protocol version:      10
Connection:            Localhost via UNIX socket
Server characterset:    utf8
Db    characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /data/AEData/mysql/data/mysql.sock
Uptime:                46 min 54 sec


Threads: 6  Questions: 6846  Slow queries: 0  Opens: 257  Flush tables: 1  Open tables: 201  Queries per second avg: 2.432
--------------


mysql>
到此, 設定完mysql使用者root的密碼且確保mysql編碼集是utf8, 注意上面, 新版本的mysql.user表裡的密碼欄位是authentication_string


MySQL遠程授權
格式如下:
mysql> grant all [privileges] on db_name.table_name to 'username'@'host' identified by 'password';
樣本如下:


mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.04 sec)


mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
或用
mysql> grant all on *.* to 'root'@'%' identified by '123456';

到此, 完成了mysql的安裝 及配置!!!

附上設定檔:
[client]
loose_default-character-set = utf8
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql/data
port = 3306
server_id = 1
socket = /data/mysql/data/mysql.sock
expire_logs_days      = 7
innodb_file_per_table
innodb_buffer_pool_size        = 2G
innodb_thread_concurrency      = 24
innodb_flush_log_at_trx_commit  = 1
innodb_log_buffer_size          = 32M
innodb_log_file_size            = 256M
innodb_log_files_in_group      = 3
innodb_max_dirty_pages_pct      = 90
innodb_lock_wait_timeout        = 120
wait_timeout            = 60 
interactive_timeout    = 7200
skip-name-resolve
character-set-server    = utf8
back_log                = 50
max_connections        = 3000
max_connect_errors      = 32
max_allowed_packet      = 32M
binlog_cache_size      = 8M
max_heap_table_size    = 512M
tmp_table_size          = 64M
key_buffer_size        = 16M
read_buffer_size        = 2M
read_rnd_buffer_size    = 8M
bulk_insert_buffer_size = 64M
sort_buffer_size        = 4M
join_buffer_size        = 2M
thread_cache_size      = 64
thread_stack            = 192K
query_cache_type        = 1
query_cache_size        = 256M
query_cache_limit      = 2M
ft_min_word_len        = 2
default_storage_engine  = INNODB
#default_table_type    = INNODB
transaction_isolation  = REPEATABLE-READ
lower_case_table_names  = 1
#log_slow_queries
slow_query_log
long_query_time = 2
log-short-format
myisam_sort_buffer_size        = 128M
myisam_max_sort_file_size      = 10G
myisam_repair_threads          = 1
[mysqldump]
quick
max_allowed_packet = 32M
routines
single-transaction
hex-blob
skip-comments 
complete-insert 
skip-disable-keys 
skip-add-locks 
skip-lock-tables 
[isamchk] 
key_buffer      = 512M
sort_buffer_size = 512M
read_buffer      = 8M
write_buffer    = 8M
[myisamchk]
key_buffer      = 512M
sort_buffer_size = 512M
read_buffer      = 8M
write_buffer    = 8M
[mysqlhotcopy]
interactive-timeout
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.