MySQL5.7.18 for Linux7.2二进制安装详解

时间:2021-10-16 21:02:55

安装二进制的MySQL非常简单,因为只需要解压软件,然后初始化自己想要的数据库就可以了,具体的做法如下:

1、下载二进制软件包:
  mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

2、添加MySQL用户和组:
  [root@localhost ~]# userdel mysql  (因为是新系统,所以就把现有的MySQL用户给删除了)
  [root@localhost ~]# groupadd mysql
  [root@localhost ~]# useradd -g mysql  mysql
  [root@localhost ~]# passwd mysql      (MySQL密码要设置的复杂一点,或者在创建用户的时候设置不让登陆系统)

3、创建安装MySQL目标,并解压软件到指定目录
  [root@localhost ~]# mkdir -p /mysql/data
  [root@localhost ~]# chown -R mysql.mysql /mysql
  [root@localhost ~]# tar zxvf  mysql-5.7.18-linux-glibc2.5-x86_64 -C /mysql
  [root@localhost ~]# cd /mysql
  [root@localhost ~]# mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql5718
  [root@localhost ~]# chown -R mysql.mysql /mysql

4、切换MySQL用户,并初始化数据库
  [root@localhost ~]# su - mysql
  [mysql@localhost ~]$ /mysql/mysql5718/bin/mysqld --initialize --user=mysql --basedir=/mysql/mysql5718/ --datadir=/mysql/data/

    -----注意,初始化数据库会生成登录MySQL数据库的root密码,一定要记住,一会登录数据库要用

5、编辑my.cnf配置文件,启动数据库
[mysql@localhost ~]$ vim my.cnf    (该配置文件仅供参考)
[client]
socket                    = /mysql/data/mysql.sock
default_character_set    = utf8

[mysql]
socket=/mysql/data/mysql.sock
 
[mysqld]                                                      
                                                    
server_id                = 1607                              
port                      = 3306                              
basedir                  = /mysql/mysql5718/                  
datadir                  = /mysql/data/              
socket                    = /mysql/data/mysql.sock    
pid_file                  = /mysql/data/mysql.pid      
log_error                = /mysql/data/mysql_error.log
log_bin                  = /mysql/data/mysql_bin      
relay_log                = /mysql/data/relay_bin      
character_set_server      = utf8                              
collation_server          = utf8_general_ci                    
              
                                              
innodb_buffer_pool_size  = 8G                            
innodb_buffer_pool_instances = 8                          
innodb_log_file_size      = 1G                            
innodb_log_files_in_group = 3                            
innodb_log_buffer_size    = 24M                          
innodb_flush_log_at_trx_commit = 1                        
innodb_file_per_table    = 1                            
innodb_flush_method      = O_DIRECT                      
innodb_io_capacity        = 200                          
innodb_io_capacity_max    = 600                          
innodb_thread_concurrency = 0                            
innodb_autoinc_lock_mode  = 2                            
innodb_lock_wait_timeout  = 60                            
innodb_read_io_threads    = 4                
innodb_write_io_threads  = 4                                  
innodb_max_dirty_pages_pct = 80                                
innodb_autoextend_increment = 512                              
innodb_checksum_algorithm = NONE                              
innodb_doublewrite        = 0                                  
innodb_use_native_aio    = 1                                  
innodb_open_files        = 8192                              
              
                            
sync_binlog              = 1                                  
sync_relay_log            = 1                                  
relay_log_info_repository = TABLE                              
master_info_repository    = TABLE                              
expire_logs_days          = 10                                
binlog_format            = ROW                                
transaction-isolation    = READ-COMMITTED                    
concurrent_insert        = 2                                  
skip_slave_start          = TRUE                            
              
                                              
back_log                  = 2000                              
thread_stack              = 256k                              
thread_cache_size        = 256                                
key_buffer_size          = 256M                              
tmp_table_size            = 64M                                
read_buffer_size          = 2M                                
read_rnd_buffer_size      = 8M                                
sort_buffer_size          = 2M                                
join_buffer_size          = 2M                                
query_cache_size          = 0                                  
query_cache_type          = 0                                  
max_heap_table_size      = 64M                                
binlog_cache_size        = 2M                                
table_open_cache          = 8192                              
max_allowed_packet        = 64M                                
bulk_insert_buffer_size  = 64M                                
                                        
                                          
max_connect_errors        = 100000                            
max_connections          = 500                                
connect_timeout          = 300                                
wait_timeout              = 86400                              
interactive_timeout      = 86400                              
lower_case_table_names    = 1                                  
open_files_limit          = 20480                              
skip_name_resolve                                              
skip_external_locking                                          
explicit_defaults_for_timestamp = TRUE                        
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 [mysql@localhost ~]$  /mysql/mysql5718/bin/mysqld_safe --defaults-file=/mysql/data/my.cnf  --user=mysql &

6、进入数据库检查:
 [mysql@localhost ~]$  /mysql/mysql5718/bin/mysql -u root -p --socket=/mysql/data/mysql.sock
 Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.18-log 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> set password='123456';  (因为刚才使用的密码是个默认的登录密码,所以我们要修改)
mysql>  flush privileges;

然后再重新登录MySQL即可,进行检查

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

Connection id:          7
Current database:
Current user:          root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:        5.7.18-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:            /mysql/data/mysql.sock
Uptime:                25 min 16 sec

Threads: 1  Questions: 19  Slow queries: 0  Opens: 110  Flush tables: 1  Open tables: 103  Queries per second avg: 0.012
--------------

mysql>

这样,二进制的MySQL就顺利安装完成了。