`

mysql 5.7.13 二进制版本的安装及docker启动相关

阅读更多

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

http://blog.csdn.net/smartdt/article/details/78126324 (Docker安装mysql 配置远程登录)

 https://blog.csdn.net/yjph83/article/details/95180425 (docker安装mysql 5.7)

 

1、将2进制版本下载到/home目录下:

[root@localhost 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目录;

[root@localhost local]# mkdir mysql                               #创建mysql安装目录

[root@localhost mysql]# mkdir /data/                             #创建数据存放目录

[root@localhost mysql]# mkdir /data/mysql/

 

2、执行命令创建用户组及用户,更改目录所属

[root@localhost local]# groupadd mysql                        #创建mysql用户组

[root@localhost local]# useradd -r -g mysql mysql        #创建mysql用户

解压

[root@localhost local]# tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

进入mysql目录,并将解压后的mysql包中的所有内容拷贝到mysql目录中

[root@localhost mysql]# cp ../mysql-5.7.13-linux-glibc2.5-x86_64/* -r ./     

 

#改变当前目录权限

[root@localhost mysql]# chown -R mysql .

[root@localhost mysql]# chgrp -R mysql .

或者用以下命令形式直接指定路径的目录权限,修改存放数据的目录权限

[root@localhost mysql]# chown -R mysql /data/mysql

[root@localhost mysql]# chgrp -R mysql /data/mysql

 

 

3、初始化数据库

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

[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --ldata=/data/mysql

5.7.7开始的初始化方法是:

[root@localhost 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包

[root@localhost mysql]# yum install libaio

安装成功后,再次执行初始化

[root@localhost 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 root@localhost: SglW/w;gg3ti

[root@localhost mysql]#

上边初始化的时候,生成了一个临时的密码文件,所以这个记住,是首次登陆的临时密码,否则你会登陆不上mysql;

以下命令修改本目录所属,防止普通用户误删除目录

[root@localhost mysql]# chown -R root .

 

 

4、添加服务

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql

 

5、修改my.cnf配置文件如下:

[root@localhost 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

[root@localhost mysql]# service mysql start

Starting MySQL.. SUCCESS! 

 

7、设置开机启动

[root@localhost mysql]# chkconfig --add mysql

有的系统是如下命令才行

[root@localhost mysql]# chkconfig mysql on

或者

[root@localhost mysql]# chkconfig --level 345 mysql on

查看是否设置成功!

[root@localhost mysql]# chkconfig --list | grep mysql

 

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

 

8、修改用户名、密码及访问权限设置,与5.6.X的版本也不相同了

首次登陆

[root@localhost 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 root@"%" 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

[root@chtest ~]#  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安装启动成功后,可以用命令:

[root@chtest ~]# docker exec -it mysql bash

进入docker容器,修改mysql 访问授权

root@da55138960a4:/# mysql -h localhost  -uroot  

 mysql> grant all privileges on *.* to root@"%" 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)

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics