MySQL | CentOS 7二进制安装MySQL 5.7.27

目录

 

版本说明

1 版本的选择

2 获取二进制程序包

3 使用MD5程序包进行校验

4 安装前准备工作

5 安装过程

5.1 创建MySQL用户和用户组

5.2 将二进制包进行解压

6 安装后的设置和测试

6.1 初始化数据目录

6.2 配置my.cnf

6.3 启动MySQL

6.4 初始化后修改root密码

     参考资料


版本说明

MySQL 5.7.27

CentOS 7.6

1 版本的选择

       安装MySQL前,需要确定安装的版本及发行的程序包格式。

       首先确定安装开发版还是GA(General Availability)版本,开发版拥有最新的特性,但是不建议在生产环境使用。GA版本也称为生产版或稳定版,适用于生产环境使用。MySQL建议使用最新的GA版本。

选择好需要安装的MySQL版本后,还需确定使用哪种发行格式进行安装。对于大多数情况,二进制发行版是最好的选择。

       如有下列需求,可考虑使用源码包进行安装。

       1.需要将MySQL安装在指定的位置,虽然标准的二进制包可以运行在任何安装位置,但你可以更灵活的通过源码包来安装MySQL的组件到指定位置。

       2.需要使用未包含在二进制包中的功能来配置mysqld。

              -DWITH_LIBWRAP=1 ,用于支持TCP封装器;

              -DWITH_ZLIB={system|bundled} ,用于压缩功能;

             -DWITH_DEBUG=1,用于调试支持。

       有关其他信息,参考 第2.9.7节“MySQL Source-Configuration Options”.。

       3.需要在配置mysqld时不使用标准二进制发行版中包含的一些特性。

       4.需要读取或修改组成MySQL的C和c++代码。

       5.源发行版包含比二进制发行版更多的测试和示例。

2 获取二进制程序包

       访问https://dev.mysql.com/downloads/mysql/,在页面中点击5.7 GA版本链接。

       在下拉框中选择需要的版本,要记录程序包的MD5值,点击右侧的“Download”按钮。

       这里会提示需要登录,不登录也可以完成下载,点击下方小字体的“No thanks,just start my download”,下载完成后上传至服务器。

3 使用MD5程序包进行校验

       在安装前使用MD5校验工具确认程序包完整性且未被修改。

# pwd

/usr/local

# md5sum mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

020b17fcbe79df8d59811f638d89df0e mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

4 安装前准备工作

       安装布局会因不同的安装类型而不同,在管理不同的系统或使用不同的安装源时可能导致混淆。来自Oracle以外供应商的安装布局可能与文档中的布局不同。

       警告:

       如果原来在该操作系统上使用yum或apt安装过MySQL,那么在本机使用二进制文件安装有可能会遇到问题,要确保之前安装的MySQL已通过包管理系统完全卸载,并删除相关无用的数据文件,同时也要删除相关的配置文件及路径,如/etc/my.cnf、/etc/mysql。

       MySQL依赖于libaio库,请使用yum进行安装。

yum install -y libaio

      对于MySQL 5.7.19及更高版本:对非统一内存访问(NUMA)的支持已经添加到通用Linux构建中,现在它依赖于libnuma库,也需要进行安装。

yum install -y libnuma

       从MySQL 5.7.19开始,Linux通用的包格式是EL6而不是EL5,MySQL客户端bin/mysql需要libtin.so.5。

       解决方法是创建一个链接,例如64位系统上的ln -s libncurses.so.5.6 /lib64/libtinfo.so.5。

       要安装二进制发行版压缩tar文件,请在选择的安装位置(通常是/usr/local/mysql)解压它。这将创建下表中所示的目录。

       MySQL Installation Layout for Generic Unix/Linux Binary Package

5 安装过程

       mysqld二进制文件的调试版本为mysqld-debug。如需要要从源代码发行版中编译自己的MySQL调试版,请使用相应的配置选项来启用调试支持。请参考第2.9节“Installing MySQL from Source”

5.1 创建MySQL用户和用户组

# groupadd mysql

# useradd -r -g mysql -s /bin/false mysql

5.2 将二进制包进行解压

# tar xf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

       创建一个软链接,可以更方便的使用/usr/local/mysql这个路径。

# ln -s mysql-5.7.27-linux-glibc2.12-x86_64 mysql

       为了避免在使用MySQL时总是需要输入客户机程序的绝对路径,可以将/usr/local/mysql/bin目录添加到path变量中。

# export PATH=$PATH:/usr/local/mysql/bin

6 安装后的设置和测试

6.1 初始化数据目录

       二进制安装MySQL后,必须初始化数据目录,包括mysql系统数据库中的表。

# cd /usr/local/mysql

# mkdir mysql-files

# chown mysql:mysql mysql-files

# chmod 750 mysql-files

       使用服务器初始化数据目录,包括包含了初始mysql授权表的mysql数据库,这些表决定如何允许用户连接到服务器。例如:

# cd /usr/local/mysql

# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp

2019-07-28T06:42:05.737833Z 0 [Warning] InnoDB: New log files created, LSN=45790

2019-07-28T06:42:05.810389Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2019-07-28T06:42:05.819466Z 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: d088e689-b102-11e9-89a8-0050563b046e.

2019-07-28T06:42:05.820752Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2019-07-28T06:42:05.822314Z 1 [Note] A temporary password is generated for root@localhost: ltgGD,LBu6x4

6.2 配置my.cnf

# cd /usr/local/mysql

# cat my.cnf

[mysqld]

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port=3306

pid-file = /usr/local/mysql/data/mysql.pid

user = mysql

socket= /usr/local/mysql/data/mysql.sock

bind-address = 0.0.0.0

server-id = 1

character-set-server = utf8

max_connections = 1000

max_connect_errors = 6000

open_files_limit = 65535

table_open_cache = 128

max_allowed_packet = 4M

binlog_cache_size = 1M

max_heap_table_size = 8M

tmp_table_size = 16M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1

query_cache_size = 8M

query_cache_limit = 2M

ft_min_word_len = 4

log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30

log_error = /usr/local/mysql/data/mysql-error.log

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /usr/local/mysql/data/mysql-slow.log

performance_schema = 0

explicit_defaults_for_timestamp

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

interactive_timeout = 28800

wait_timeout = 28800

#lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

interactive_timeout = 28800

wait_timeout = 28800


[client]

port=3306

socket = /usr/local/mysql/data/mysql.sock


[mysql]

socket = /usr/local/mysql/data/mysql.sock

6.3 启动MySQL

# service mysqld start

Starting MySQL..Logging to '/usr/local/mysql/data/mysql-error.log'.

. SUCCESS!

6.4 初始化后修改root密码

# mysql -u root -p

Enter password:        --输入初始化打印信息中的口令ltgGD,LBu6x4

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.27-log


Copyright (c) 2000, 2019, 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> 

      执行一条查看database的命令进行验证。

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
--提示需要重置密码

mysql> set PASSWORD=PASSWORD('root');

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

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

mysql> quit

Bye


# service mysqld stop

Shutting down MySQL.. SUCCESS!

       至此,已完成二进制安装MySQL 5.7。

参考资料

              https://dev.mysql.com/doc/refman/5.7/en/installing.html

 

Tank

2019.7.28

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值