CentOS 6下安装MySQL5.6

1. 下载MySQL软件

https://dev.mysql.com/downloads/mysql/5.6.html#downloads

 

2. 解压缩

cd /usr/local

tar xzvf /tmp/mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz /usr/local

mv mysql-5.6.31-linux-glibc2.5-x86_64 mysql

chown -R mysql:mysql /usr/local/mysql/

 

3. 创建MySQL用户

useradd  mysql 

id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)

 

4. 创建数据目录

数据存放目录:/data/mysql/mysql_3306/{data, logs,tmp}

mkdir –p /data/mysql/mysql_3306/{data,logs,tmp}

chown -R mysql:mysql /data/mysql/

 

5. 添加环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

source /etc/profile

 

6. 编辑 my.cnf

[client]
user                            = root
password                        = 'Abc_1234'
port                            = 3306
socket                          = /data/mysql/mysql_3306/tmp/mysql.sock

[mysql]

# CLIENT #
port                            = 3306
socket                          = /data/mysql/mysql_3306/tmp/mysql.sock
default_character_set           = utf8
prompt="u@h:p  R:m:s [d]>"
                                
[mysqld]                        
                                
# GENERAL #                     
user                            = mysql
default_storage_engine          = InnoDB
character_set_server            = utf8mb4
socket                          = /data/mysql/mysql_3306/tmp/mysql.sock
pid_file                        = /data/mysql/mysql_3306/logs/mysqld.pid
server_id                       = 1001
explicit_defaults_for_timestamp = 1
back_log                        = 500
                                
# MyISAM #                      
key_buffer_size                 = 32M
myisam_recover_options          = FORCE,BACKUP
                                
# SAFETY #                      
max_allowed_packet              = 32M
max_connect_errors              = 100000
sql_mode                        = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
innodb                          = FORCE

# TIMEOUT #
interactive_timeout             = 600
wait_timeout                    = 600

# DATA STORAGE #
datadir                         = /data/mysql/mysql_3306/data

# BINARY LOG #
log_bin                         = /data/mysql/mysql_3306/logs/mysql_bin
expire_logs_days                = 15
sync_binlog                     = 1
binlog_format                   = ROW
log_bin_trust_function_creators = 1
binlog_rows_query_log_events    = 1
binlog_cache_size               = 4M
max_binlog_size                 = 1G

# RELAY LOG #
relay_log                      = /data/mysql/mysql_3306/logs/relay_bin
max_relay_log_size             = 1G
relay_log_info_repository      = TABLE
master_info_repository         = TABLE
relay_log_recovery             = 1


# REPLICATI #
gtid_mode                      = 1
enforce_gtid_consistency       = 1
binlog_gtid_simple_recovery    = 1
log_slave_updates              = 1
sync_relay_log                 = 10000
sync_relay_log_info            = 10000
sync_master_info               = 1
#slave_skip_errors             = ddl_exist_errors

# SLAVE #
#read_only                     = 1
slave_net_timeout              = 60
#skip_slave_start              = 1
slave_pending_jobs_size_max    = 64M

# CACHES AND LIMITS #
tmp_table_size                 = 64M
max_heap_table_size            = 32M
sort_buffer_size               = 2M
join_buffer_size               = 2M
read_buffer_size               = 4M
read_rnd_buffer_size           = 4M
bulk_insert_buffer_size        = 32M
query_cache_type               = 0
query_cache_size               = 0
max_connections                = 500
thread_cache_size              = 50
open_files_limit               = 65535
table_definition_cache         = 4096
table_open_cache               = 4096

# INNODB #
innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 4
innodb_log_file_size           = 512M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
innodb_log_buffer_size         = 16M
innodb_buffer_pool_size        = 8G
innodb_data_file_path          = ibdata1:1G:autoextend
innodb_io_capacity             = 4000
innodb_io_capacity_max         = 8000
innodb_lru_scan_depth          = 2000
innodb_lock_wait_timeout       = 50
innodb_undo_logs               = 128
innodb_undo_tablespaces        = 3
innodb_purge_threads           = 4
innodb_print_all_deadlocks     = 1
innodb_strict_mode             = 1
innodb_sort_buffer_size        = 64M 
innodb_flush_neighbors         = 1 # 固态硬盘可以设置为0
innodb_buffer_pool_load_at_startup  = 1
innodb_buffer_pool_dump_at_shutdown = 1
         

# LOGGING #
log_error                      = /data/mysql/mysql_3306/logs/mysql_error.log
log_error_verbosity            = 1
slow_query_log                 = 1
slow_query_log_file            = /data/mysql/mysql_3306/logs/mysql_slow.log
max_slowlog_size               = 1G
log_queries_not_using_indexes  = 0
log_warnings                   = 2
long_query_time                = 1
log_slow_admin_statements      = 1
log_slow_slave_statements      = 1
min_examined_row_limit         = 100000

 mysql加载my.cnf的顺序

使用mysql --verbose --help | grep my.cnf命令可以查看mysql加载配置文件都顺序

/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf

最后面的变量覆盖前面都变量

mysql --print-defaults
查看mysql当前的配置参数

mysqld --defaults-file=/etc/my.cnf
指定读取哪个配置文件

7. 初始化数据库

cd /usr/local/mysql/

./scripts/mysql_install_db --defaults-file=/etc/my.cnf
Installing MySQL system tables...2016-06-04 15:19:37 0 [Note] ./bin/mysqld (mysqld 5.6.31-log) starting as process 3305 ...
OK

Filling help tables...2016-06-04 15:19:43 0 [Note] ./bin/mysqld (mysqld 5.6.31-log) starting as process 3328 ...
OK
…………

看到两个OK,证明mysql安装成功。再查看/data/mysql/msyql_3306/data/error.log,确认没有报错。

MySQL5.7 使用 mysqld 初始化数据库,mysqld --defaults-file=/etc/my.cnf

 

8. 启动MySQL

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

service mysqld start
Starting MySQL.. [ OK ]

看到OK,证明mysql启动成功。

查看MySQL进程是否存在及监听端口

ps axu|grep mysql

root 3382 0.0 0.1 11468 1380 pts/1 S 15:24 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql_3306/data --pid-file=/data/mysql/mysql_3306/data/mysql.pid
mysql 4320 0.4 55.9 1160676 570620 pts/1 Sl 15:24 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql_3306/data/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql_3306/data/mysql.pid --socket=/data/mysql/mysql_3306/tmp/mysql.sock --port=3306
root 4371 0.0 0.0 103252 840 pts/1 S+ 15:28 0:00 grep mysql

netstat -nalp|grep "3306"
tcp 0 0 :::3306 :::* LISTEN 4320/mysqld 
unix 2 [ ACC ] STREAM LISTENING 33638 4320/mysqld /data/mysql/mysql_3306/tmp/mysql.sock

lsof -n -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 4320 mysql 14u IPv6 33637 0t0 TCP *:mysql (LISTEN)

service mysqld start --> mysqld_safe --> mysqld

service mysqld start 调用 mysqld_safe, mysqld_safe再调用mysqld

9. 删除无用账号

delete from mysql.user where user!='root' or host!='localhost';
select user,host,password from mysql.user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
truncate table mysql.db;
原文地址:https://www.cnblogs.com/ziroro/p/9792472.html