天天看點

mysql 5.7.13 二進制版本的安裝及docker啟動mysql相關

https://www.cnblogs.com/notejava/p/7124189.html  (使用docker安裝mysql服務)

http://blog.csdn.net/smartdt/article/details/78126324 (Docker安裝mysql 配置遠端登入)

1、将2進制版本下載下傳到/home目錄下:

[[email protected] home]# wget http://120.52.72.20/cdn.mysql.com/c3pr90ntc0td//Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

 将這個包拷貝到 /usr/local/ 目錄下,并建立mysql目錄;

[[email protected] local]# mkdir mysql                               #建立mysql安裝目錄

[[email protected] mysql]# mkdir /data/                             #建立資料存放目錄

[[email protected] mysql]# mkdir /data/mysql/

2、執行指令建立使用者組及使用者,更改目錄所屬

[[email protected] local]# groupadd mysql                        #建立mysql使用者組

[[email protected] local]# useradd -r -g mysql mysql        #建立mysql使用者

解壓

[[email protected] local]# tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

進入mysql目錄,并将解壓後的mysql包中的所有内容拷貝到mysql目錄中

[[email protected] mysql]# cp ../mysql-5.7.13-linux-glibc2.5-x86_64/* -r ./     

#改變目前目錄權限

[[email protected] mysql]# chown -R mysql .

[[email protected] mysql]# chgrp -R mysql .

或者用以下指令形式直接指定路徑的目錄權限,修改存放資料的目錄權限

[[email protected] mysql]# chown -R mysql /data/mysql

[[email protected] mysql]# chgrp -R mysql /data/mysql

3、初始化資料庫

5.6.x版本和5.7.6以前版本的初始化方法如下:

[[email protected] mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --ldata=/data/mysql

5.7.7開始的初始化方法是:

[[email protected] mysql]# ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql --socket=/var/lib/mysql/mysql.sock

本以為很快OK,結果報錯!

./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

官方文檔提示需要安裝 libaio包

[[email protected] mysql]# yum install libaio

安裝成功後,再次執行初始化

[[email protected] mysql]# ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql --socket=/var/lib/mysql/mysql.sock

2016-06-06T06:40:27.968348Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2016-06-06T06:40:28.251015Z 0 [Warning] InnoDB: New log files created, LSN=45790

2016-06-06T06:40:28.300985Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2016-06-06T06:40:28.369889Z 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: 8ea40607-2bb1-11e6-8de2-549f3511065c.

2016-06-06T06:40:28.370826Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2016-06-06T06:40:28.371992Z 1 [Note] A temporary password is generated for [email protected]: SglW/w;gg3ti

[[email protected] mysql]#

上邊初始化的時候,生成了一個臨時的密碼檔案,是以這個記住,是首次登陸的臨時密碼,否則你會登陸不上mysql;

以下指令修改本目錄所屬,防止普通使用者誤删除目錄

[[email protected] mysql]# chown -R root .

4、添加服務

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

5、修改my.cnf配置檔案如下:

[[email protected] mysql]# vim /etc/my.cnf

[client]

port=3306

default-character-set=utf8

socket=/var/lib/mysql/mysql.sock

[mysqld]

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

#### memory configure

innodb_buffer_pool_size=2G

sort_buffer_size=4M

innodb_file_per_table=1

innodb_open_files=4000

table_open_cache=4000

max_connections=1000

#### character set

character-set-server=utf8

collation-server=utf8_general_ci

lower-case-table-names=1

#### log configure

slow-query-log=1

long-query-time=2

log_queries_not_using_indexes=1

slow-query-log-file=/data/mysql/mysql01-slow.log

#### replication configure

server-id = 1

replicate-ignore-db = mysql

replicate-ignore-db = information_schema

replicate-ignore-db = performance_schema

replicate-ignore-db = sys

binlog-ignore-db  = mysql

binlog-ignore-db  = information_schema

binlog-ignore-db  = performance_schema

binlog-ignore-db  = sys

binlog-format=ROW

binlog-row-image=full

binlog-rows-query-log-events=1

sync_binlog=1

log-slave-updates=true

auto-increment-increment = 2

auto-increment-offset = 1

gtid-mode=on

enforce-gtid-consistency=true

# slave-skip-errors=all

# expire-logs-days  = 100 

slave-skip-errors=1396

#### time configure

explicit_defaults_for_timestamp=true

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

其餘配置再自己去查詢相關資料;

6、啟動mysql

[[email protected] mysql]# service mysql start

Starting MySQL.. SUCCESS! 

7、設定開機啟動

[[email protected] mysql]# chkconfig --add mysql

有的系統是如下指令才行

[[email protected] mysql]# chkconfig mysql on

或者

[[email protected] mysql]# chkconfig --level 345 mysql on

檢視是否設定成功!

[[email protected] mysql]# chkconfig --list | grep mysql

mysql          0:off1:off2:on3:on4:on5:on6:off

8、修改使用者名、密碼及通路權限設定,與5.6.X的版本也不相同了

首次登陸

[[email protected] mysql]# ./bin/mysql -uroot -p 

Enter password: 

輸入,初始化生成的 臨時密碼

mysql> use mysql;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

要求先修改密碼

mysql> set PASSWORD='chbigdata';     # 5.7.X 也推薦這種方式來修改密碼了,因為,user表屬性都變了

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> select * from user\G;

*************************** 1. row ***************************

                  Host: localhost

                  User: root

           Select_priv: Y

           Insert_priv: Y

           Update_priv: Y

           Delete_priv: Y

           Create_priv: Y

             Drop_priv: Y

           Reload_priv: Y

         Shutdown_priv: Y

          Process_priv: Y

             File_priv: Y

            Grant_priv: Y

       References_priv: Y

            Index_priv: Y

            Alter_priv: Y

          Show_db_priv: Y

            Super_priv: Y

 Create_tmp_table_priv: Y

      Lock_tables_priv: Y

          Execute_priv: Y

       Repl_slave_priv: Y

      Repl_client_priv: Y

      Create_view_priv: Y

        Show_view_priv: Y

   Create_routine_priv: Y

    Alter_routine_priv: Y

      Create_user_priv: Y

            Event_priv: Y

          Trigger_priv: Y

Create_tablespace_priv: Y

              ssl_type: 

            ssl_cipher: 

           x509_issuer: 

          x509_subject: 

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin: mysql_native_password

 authentication_string: *EAA725493C459C34C1EB241F01C28CC7B1A5A003

      password_expired: N

 password_last_changed: 2016-06-06 16:04:21

     password_lifetime: NULL

        account_locked: N

*************************** 2. row ***************************

                  Host: localhost

                  User: mysql.sys

           Select_priv: N

           Insert_priv: N

           Update_priv: N

           Delete_priv: N

           Create_priv: N

             Drop_priv: N

           Reload_priv: N

         Shutdown_priv: N

          Process_priv: N

             File_priv: N

            Grant_priv: N

       References_priv: N

            Index_priv: N

            Alter_priv: N

          Show_db_priv: N

            Super_priv: N

 Create_tmp_table_priv: N

      Lock_tables_priv: N

          Execute_priv: N

       Repl_slave_priv: N

      Repl_client_priv: N

      Create_view_priv: N

        Show_view_priv: N

   Create_routine_priv: N

    Alter_routine_priv: N

      Create_user_priv: N

            Event_priv: N

          Trigger_priv: N

Create_tablespace_priv: N

              ssl_type: 

            ssl_cipher: 

           x509_issuer: 

          x509_subject: 

         max_questions: 0

           max_updates: 0

       max_connections: 0

  max_user_connections: 0

                plugin: mysql_native_password

 authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

      password_expired: N

 password_last_changed: 2016-06-06 14:40:29

     password_lifetime: NULL

        account_locked: Y

2 rows in set (0.00 sec)

 以上修改的密碼是隻限定本機登陸的,要想遠端登入則還需要

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "chbigdata";

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

現在就可以用用戶端工具登入了。

 另:

docker方式安裝mysql 5.7

[[email protected] ~]#  docker run --name mysql -p 3306:3306 --restart=always \

-v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-v /home/data/mysql/logs:/var/log/mysql \

-v /home/data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password \

-e TZ='Asia/Shanghai' \

-d mysql:5.7

# password 自己修改成自己的名字,/home/data/mysql/conf/my.cnf 主控端目錄;/etc/mysql/my.cnf docker容器内的目錄

 docker安裝啟動成功後,可以用指令:

[[email protected] ~]# docker exec -it mysql bash

進入docker容器,修改mysql 通路授權

[email protected]:/# mysql -h localhost  -uroot  

 mysql> grant all privileges on *.* to [email protected]"%" identified by "chbigdata" with grant option;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges; 

Query OK, 0 rows affected (0.00 sec)

繼續閱讀