MySQL 5.7 二进制包编译安装

系统环境:

[root@db01 ~]# cat /etc/redhat-release;uname -r;uname -m

CentOS release 6.8 (Final)

2.6.32-642.el6.x86_64

x86_64

[root@db01 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'

10.0.0.8

[root@db01 ~]# ifconfig eth1|awk -F "[ :]+" 'NR==2{print $4}'

172.16.1.8

[root@db01 ~]# /etc/init.d/iptables status

iptables: Firewall is not running.

[root@db01 ~]# getenforce

Disabled

[root@db01 ~]# free -h

total used free shared buffers cached

Mem: 1.8G 129M 1.7G 192K 10M 30M

-/+ buffers/cache: 88M 1.7G

Swap: 2.9G 0B 2.9G

[root@db01 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 26G 4.5G 20G 19% /

tmpfs 931M 0 931M 0% /dev/shm

/dev/sda1 976M 38M 888M 5% /boot

/dev/sdb1 50G 52M 47G 1% /data

安装前期:

#卸载系统自带的Mysql

[root@db01 ~]# rpm -qa|grep mysql

mysql-libs-5.1.73-7.el6.x86_64

[root@db01 ~]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

[root@db01 ~]# rpm -qa|grep mysql

[root@db01 ~]#


#创建MySQL用户

[root@db01 ~]# useradd -u 800 -s /sbin/nologin -M mysql

[root@db01 ~]# id mysql

uid=800(mysql) gid=800(mysql) groups=800(mysql)


#创建相应的目录

[root@db01 ~]# mkdir /apps /data/3306/{data,errlog,binlog,slowlog,relaylog} -p

[root@db01 ~]# ls -ld /apps/

drwxr-xr-x 2 root root 4096 Nov 4 19:18 /apps/

[root@db01 ~]# tree /data/

/data/

|-- 3306

| |-- binlog

| |-- data

| |-- errlog

| |-- relaylog

| `-- slowlog

`-- lost+found

7 directories, 0 files


#上传软件,准备安装mysql

[root@db01 ~]# mkdir tools

[root@db01 ~]# cd tools/

[root@db01 tools]# rz

[root@db01 tools]# ll mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

-rw-r--r-- 1 root root 641127384 Oct 28 17:20 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

[root@db01 tools]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /apps/

[root@db01 tools]# mv /apps/mysql-5.7.20-linux-glibc2.12-x86_64/ /apps/mysql-5.7.20

[root@db01 tools]# ln -sv /apps/mysql-5.7.20/ /apps/mysql

`/apps/mysql' -> `/apps/mysql-5.7.20/'

[root@db01 tools]# chown -R mysql:mysql /apps/mysql/

[root@db01 tools]# ls -ld /apps/mysql/

drwxr-xr-x 9 mysql mysql 4096 Nov 4 19:24 /apps/mysql/

配置my.cnf文件

[root@db01 ~]# vim /data/3306/my.cnf

[client]

port=3306

socket=/data/3306/mysql.sock


[mysql]

no_auto_rehash


[mysqld]

######Basic Parameters

user=mysql

port=3306

basedir=/apps/mysql

datadir=/data/3306/data

socket=/data/3306/mysql.sock

pid_file=/data/3306/mysql.pid

character_set_server=utf8

skip_character_set_client_handshake=1


######Server id

server_id=1


######Log Parameters

log_output=FILE

log_timestamps=system

binlog_format=row

expire_logs_days=15

max_binlog_size=2M

binlog_cache_size=2M

max_binlog_cache_size=4M

sync_binlog=1

master_info_repository=table

binlog_rows_query_log_events=on

log_bin_trust_function_creators=1

log_bin=/data/3306/binlog/mysql_bin


log_slow_admin_statements=1

slow_query_log=on

long_query_time=2

log_queries_not_using_indexes=on

slow_query_log_file=/data/3306/slowlog/mysql_slow.log


log-error=/data/3306/errlog/mysql_error.log


######Optimization Settings######

autocommit=on

skip_external_locking=on

#skip_name_resolve=on

max_connections=800

max_connect_errors=1000

default-storage-engine=INNODB

transaction_isolation=READ-COMMITTED

explicit_defaults_for_timestamp=1

sort_buffer_size=32M

join_buffer_size=128M

tmp_table_size=72M

max_allowed_packet=16M

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

interactive_timeout=1800

wait_timeout=1800

read_buffer_size=16M

read_rnd_buffer_size=32M

query_cache_type=1

query_cache_size=1M

table_open_cache=2000

thread_cache_size=768

myisam_max_sort_file_size=10G

myisam_sort_buffer_size=135M

key_buffer_size=32M

read_buffer_size=8M

read_rnd_buffer_size=4M

back_log=1024

#flush_time=0

open_files_limit=65536

table_definition_cache=1400

#binlog_row_event_max_size=8K

#sync_master_info=10000

#sync_relay_log=10000

#sync_relay_log_info=10000

########innodb settings########

default-storage-engine=INNODB

innodb_io_capacity = 4000

innodb_io_capacity_max = 8000

innodb_buffer_pool_size = 500M

innodb_buffer_pool_instances = 8

innodb_buffer_pool_load_at_startup = 1

innodb_buffer_pool_dump_at_shutdown = 1

innodb_lru_scan_depth = 2000

innodb_lock_wait_timeout = 5

#innodb_flush_method = O_DIRECT

innodb_log_file_size = 200M

innodb_log_files_in_group = 2

innodb_log_buffer_size = 16M

innodb_undo_logs = 128

innodb_undo_tablespaces = 3

innodb_undo_log_truncate = 1

innodb_max_undo_log_size = 2G

innodb_flush_neighbors = 1

innodb_purge_threads = 4

innodb_large_prefix = 1

innodb_thread_concurrency = 64

innodb_print_all_deadlocks = 1

innodb_strict_mode = 1

innodb_sort_buffer_size = 64M

innodb_flush_log_at_trx_commit=1

innodb_autoextend_increment=64

innodb_concurrency_tickets=5000

innodb_old_blocks_time=1000

innodb_open_files=65536

innodb_stats_on_metadata=0

innodb_file_per_table=1

innodb_checksum_algorithm=0

innodb_data_file_path=ibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5G

innodb_temp_data_file_path = ibtmp1:200M:autoextend:max:20G

innodb_buffer_pool_dump_pct = 40

innodb_page_cleaners = 4

innodb_purge_rseg_truncate_frequency = 128

binlog_gtid_simple_recovery=1

log_timestamps=system

#transaction_write_set_extraction=MURMUR32

show_compatibility_56=on

启动脚本

     [root@db01 ~]# vim /data/3306/mysqld

           把 http://blog.51cto.com/11576296/2323633 的内容拷贝至文件中,保存并退出

           说明:

      01:该脚本中停用mysql的方法为:mysqladmin -uroot -pchenliang -S /data/3306/mysql.sock shutdown

      02:如果你的mysql服务的root用户密码设置的不是chenliang

      03:请你更改/data/3306/mysqld脚本中的Pass变量的值(与你的root用户的密码一至)

      

安装后期

#更改/data/3306/的属主/组和/data/3306/mysqld文件的权限为700

[root@db01 ~]# chown -R mysql:mysql /data/3306/

[root@db01 ~]# chmod 700 /data/3306/mysqld

[root@db01 ~]# ll /data/3306/mysqld

-rwx------ 1 mysql mysql 1603 Nov 4 19:36 /data/3306/mysqld


#创建错误日志

[root@db01 ~]# grep "errlog" /data/3306/my.cnf

log-error=/data/3306/errlog/mysql_error.log

[root@db01 ~]# touch /data/3306/errlog/mysql_error.log

[root@db01 ~]# chown mysql:mysql /data/3306/errlog/mysql_error.log

[root@db01 ~]# ll /data/3306/errlog/mysql_error.log

-rw-r--r-- 1 mysql mysql 0 Nov 4 19:38 /data/3306/errlog/mysql_error.log


#配置环境变量

[root@db01 ~]# echo "PATH=/apps/mysql/bin:$PATH" >>/etc/bashrc

[root@db01 ~]# source /etc/bashrc

[root@db01 ~]# echo $PATH

/apps/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


#初始化mysql数据库

[root@db01 ~]# mysqld --defaults-file=/data/3306/my.cnf --user=mysql --basedir=/apps/mysql --datadir=/data/3306/data/ --initialize

[root@db01 ~]# echo $?

0


##启动mysql服务,并记录下实时密码

[root@db01 ~]# /data/3306/mysqld start

Start MySQL [3306] [ OK ]

[root@db01 ~]# netstat -lntup|grep 3306

tcp 0 0 172.16.1.8:3306 0.0.0.0:* LISTEN 3307/mysqld

[root@db01~]# grep -i "root@localhost" /data/3306/errlog/mysql_error.log

2018-11-14T10:08:51.243406+08:00 1 [Note] A temporary password is generated for root@localhost: w!toDKSy86ki

2018-11-14T10:08:59.153250+08:00 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.

2018-11-14T10:08:59.153443+08:00 1 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.

2018-11-14T10:09:20.953187+08:00 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.

2018-11-14T10:09:20.953374+08:00 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.


#修改mysql超级用户root的密码

#因为随机密码中有特殊字符"!",不能用以下修改密码的方式和登录服务的方式

#修改密码的方式:mysqladmin -uroot -pw!toDKSy86ki password chenliang -S /data/3306/mysql.sock

#登录服务的方式:mysql -uroot -pw!toDKSy86ki -S /data/3306/mysql.sock

#需要用以下的方式来修改密码

[root@db01 tools]# mysql -uroot -p -S /data/3306/mysql.sock

Enter password:

mysql>

mysql> alter user 'root'@'localhost' identified by 'chenliang';

Query OK, 0 rows affected (5.02 sec)

mysql> select user,host,authentication_string from mysql.user where user='root' and host='localhost';

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

| user | host      | authentication_string                     |

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

| root | localhost | *D072DB593E2E7B068E887A452EB1DB3981A5D844 |

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

1 row in set (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

[root@db01 tools]# mysql -uroot -pchenliang -S /data/3306/mysql.sock -e "show databases;"

mysql: [Warning] Using a password on the command line interface can be insecure.

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

| Database           |

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

| information_schema |

| mysql              |

| performance_schema |

| sys                |

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


#加入开机自启动

[root@db01 tools]# echo -ne "\n#Boot start mysql service. USER:chenliang Time:2018-10-23\n/data/3306/mysqld start\n" >>/etc/rc.local

[root@db01 tools]# tail -2 /etc/rc.local

#Boot start mysql service. USER:chenliang Time:2018-10-23

/data/3306/mysqld start

猜你喜欢

转载自blog.51cto.com/11576296/2323780