频道栏目
首页 > 资讯 > 其他综合 > 正文

MySQL5.7.22二进制包部署单实例教学

19-01-14        来源:[db:作者]  
收藏   我要投稿

1.1 前期规划

1.2 软件下载

1.3 系统环境

1.4 调整文件描述符

1.5 安装程序

1.6 准备配置文件

1.7 准备启动脚本

1.8 初始化mysql并完成安装

1.9 加入开机自启动

1.1 前期规划

01:虚拟机一台,2vCPU,4G内存,部署mysql服务,端口3306。

02:MySQL程序的安装目录:/data/apps/mysql-5.7.22 要做软件链接:/data/apps/mysql

03:配置文件路径为:/data/mysql/3306/my.cnf

04:其它相关目录:/data/mysql/3306/{data,binlog,slowlog,errlog,redolog }

05:采用MySQL通用二进制包(mysql-5.7.22-linux-glibc2.12-x86_64.tar)

1.2 软件下载

链接:https://pan.baidu.com/s/1Q6jl8UcoLCIbMShZREBSKw

提取码:litr

1.3 系统环境

[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 ~]# /etc/init.d/iptables status

iptables: Firewall is not running.

[root@db01 ~]# getenforce

Disabled

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

10.0.0.10

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

172.16.1.10

[root@db01 ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 26G 1.5G 23G 6% /

tmpfs 1.9G 0 1. 9G 0% /dev/shm

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

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

1.4 调整文件描述符

[root@db01 ~]# cat >>/etc/security/limits.conf <

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

* soft stack 65535

* soft stack 65535

EOF

[root@db01 ~]# echo "* - proc 65535" > /etc/security/limits.d/90-nproc.conf

[root@db01 ~]# ulimit -a <==断开当前连接后重新连接,再查看

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 31375

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 65535

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 65535

cpu time (seconds, -t) unlimited

max user processes (-u) 65535

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

1.5 安装程序

##卸载系统自带的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 ~]#

##安装相关的依赖包

[root@db01 ~]# yum install gcc gcc-c++ bison ncurses ncurses-devel numactl zlib libxml2 openssl libaio libstdc++-devel -y

[root@db01 ~]# rpm -qa gcc gcc-c++ bison ncurses ncurses-devel numactl zlib libxml2 openssl libaio libstdc++-devel

libxml2-2.7.6-21.el6_8.1.x86_64

gcc-c++-4.4.7-23.el6.x86_64

zlib-1.2.3-29.el6.x86_64

ncurses-5.7-4.20090207.el6.x86_64

bison-2.4.1-5.el6.x86_64

numactl-2.0.9-2.el6.x86_64

openssl-1.0.1e-57.el6.x86_64

gcc-4.4.7-23.el6.x86_64

ncurses-devel-5.7-4.20090207.el6.x86_64

libstdc++-devel-4.4.7-23.el6.x86_64

libaio-0.3.107-10.el6.x86_64

##创建mysql用户,不让其登录,不创建家目录

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

[root@db01 ~]# id mysql

uid=501(mysql) gid=501(mysql) groups=501(mysql)

[root@db01 ~]# tail -1 /etc/passwd

mysql:x:501:501::/home/mysql:/sbin/nologin

##创建相关的目录

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

[root@db01 ~]# tree /data/

/data/

|-- apps

|-- lost+found

`-- mysql

`-- 3306

|-- binlog

|-- data

|-- errlog

|-- redolog

`-- slowlog

9 directories, 0 files

#创建/tools目录,我们把软件上传到这个目录下,然后进行操作

[root@db01 ~]# mkdir tools

[root@db01 ~]# cd tools/

[root@db01 tools]# rz

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

-rw-r--r-- 1 root root 643790848 Nov 21 09:47 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

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

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

[root@db01 tools]# ln -s /data/apps/mysql-5.7.22/ /data/apps/mysql

[root@db01 tools]# ll /data/apps/mysql

lrwxrwxrwx 1 root root 24 Dec 10 10:44 /data/apps/mysql -> /data/apps/mysql-5.7.22/

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

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

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

[root@db01 ~]# echo $PATH

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

1.6 准备配置文件

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

[client]

port=3306

socket=/data/mysql/3306/mysql.sock

[mysql]

no_auto_rehash

[mysqld]

###Basic Parameters

user=mysql

port=3306

basedir=/data/apps/mysql

datadir=/data/mysql/3306/data

socket=/data/mysql/3306/mysql.sock

pid_file=/data/mysql/3306/mysql.pid

character_set_server=utf8

skip_character_set_client_handshake=1

###Server id

server_id=3306

###Binlog 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/mysql/3306/binlog/mysql_bin

###Slowlog Parameters

log_slow_admin_statements=1

slow_query_log=on

long_query_time=2

log_queries_not_using_indexes=on

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

###Errlog Parameters

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

###Other Parameters

autocommit=on

skip_external_locking=on

skip_name_resolve=on

max_connections=800

max_connect_errors=1000

max_allowed_packet=200M

wait_timeout=1800

interactive_timeout=1800

open_files_limit=65535

group_concat_max_len=4294967295

symbolic_links=0

transaction_write_set_extraction=off

transaction_isolation=READ-COMMITTED

explicit_defaults_for_timestamp=1

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

###Innodb Parameters

default_storage_engine=InnoDB

innodb_flush_log_at_trx_commit=1

innodb_buffer_pool_size=500M

innodb_buffer_pool_instances=8

innodb_buffer_pool_dump_at_shutdown=1

innodb_buffer_pool_dump_pct=40

innodb_buffer_pool_load_at_startup=1

innodb_file_per_table=1

innodb_change_buffering=all

innodb_doublewrite=on

innodb_autoextend_increment=64

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

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

innodb_flush_method=O_DIRECT

innodb_log_buffer_size=16M

innodb_log_file_size=4G

innodb_log_files_in_group=2

innodb_log_group_home_dir=/data/mysql/3306/redolog

innodb_undo_logs=128

innodb_undo_tablespaces=3

innodb_undo_log_truncate=1

innodb_max_undo_log_size=20G

innodb_purge_rseg_truncate_frequency=128

innodb_print_all_deadlocks=on

innodb_lock_wait_timeout=5

innodb_deadlock_detect=on

innodb_status_output_locks=on

innodb_strict_mode=1

innodb_sort_buffer_size=64M

innodb_open_files=65535

innodb_concurrency_tickets=5000

innodb_page_cleaners=4

innodb_old_blocks_time=1000

innodb_stats_on_metadata=0

innodb_checksum_algorithm=0

show_compatibility_56=on

innodb_lru_scan_depth=2000

innodb_flush_neighbors=1

innodb_purge_threads=4

innodb_large_prefix=1

1.7 准备启动脚本

注意:

01:该脚本中停止mysql的方法为:

mysqladmin -uUser -pPassword -S /data/mysql/3306/mysql.sock shutdown

02:脚本中有一个Pass变量,就是MySQL root用户的密码

03:当然你也可以设置成其它密码,但必须得改脚本中的Pass变量的值(前提是用这个脚本)

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

#!/bin/bash
#
#MySQLbootscript
#QQ:158316096
#Blog:http://blog.51cto.com/11576296
#
#Definevariables
RETVAL=0
Port=3306
User=root
Pass=chenliang
Pid=/data/mysql/3306/mysql.pid
Sock=/data/mysql/3306/mysql.sock
My=/data/mysql/3306/my.cnf
Path=/data/apps/mysql/bin

#Determinetheusertoexecute
if[$UID-ne$RETVAL];then
echo"Mustberoottorunscripts"
exit1
fi

#Loadthelocalfunctions
[-f/etc/init.d/functions]&&source/etc/init.d/functions

#Definefunctions
start(){
if[!-f"$Pid"];then
$Path/mysqld_safe--defaults-file=$My>/dev/null2>&1&
RETVAL=$
if[$RETVAL-eq0];then
action"StartMySQL[3306]"/bin/true
else
action"StartMySQL[3306]"/bin/false
fi
else
echo"MySQL3306isrunning"
exit1
fi
return$RETVAL
}

stop(){
if[-f"$Pid"];then
$Path/mysqladmin-u$User-p$Pass-S$Sockshutdown>/dev/null2>&1
RETVAL=$
if[$RETVAL-eq0];then
action"StopMySQL[3306]"/bin/true
else
action"StopMySQL[3306]"/bin/false
fi
else
echo"MySQL[3306]isnotrunning"
exit1
fi
return$RETVAL
}

status(){
if[-f"$Pid"];then
echo"MySQL[3306]isrunning"
else
echo"MySQL[3306]isnotrunning"
fi
return$RETVAL
}

#Casecallfunctions
case"$1"in
start)
start
RETVAL=$
;;
stop)
stop
RETVAL=$
;;
restart)
stop
sleep5
start
RETVAL=$
;;
status)
status
RETVAL=$
;;
*)
echo"USAGE:$0{start|stop|restart|status}"
exit1
esac

#Scriptsreturnvalues
exit$RETVAL

1.8 初始化mysql并完成安装

#更改/data/mysql/3306/mysqld脚本的权限为700(因为脚本中有密码)

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

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

-rwx------ 1 root root 1897 Dec 9 00:44 /data/mysql/3306/mysqld

#创建错误日志

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

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

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

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

-rw-r--r-- 1 root root 0 Dec 10 10:54 /data/mysql/3306/errlog/mysql_error.log

#更改/data/mysql/3306/目录及子目录下文件的属主/组为mysql

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

[root@db01 ~]# ls -ld /data/mysql/3306/

drwxr-xr-x 7 mysql mysql 4096 Dec 10 10:50 /data/mysql/3306/

#初始化mysql

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

[root@db01 ~]# echo $

0

#启动mysql服务并修改密码为chenliang

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

Start MySQL [3306] [ OK ]

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

tcp 0 0 :::3306 :::* LISTEN 3384/mysqld

[root@db01 ~]# grep "password" /data/mysql/3306/errlog/mysql_error.log

2018-12-10T11:01:25.394681+08:00 1 [Note] A temporary password is generated for root@localhost: z5D/BEBrcil

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

Enter password: <=输入密码z5D/BEBrcil

mysql>

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

Query OK, 0 rows affected (0.03 sec)

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

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

| user | host | authentication_string | password_expired |

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

| root | localhost | *D072DB593E2E7B068E887A452EB1DB3981A5D844 | N |

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

1 row in set (0.02 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

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

Enter password: <==输入密码chenliang

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

| Database |

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

| information_schema |

| mysql |

| performance_schema |

| sys |

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

1.9 加入开机自启动

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

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

# Boot start mysql service[3306].USER:chenliang TIME:2018-11-23

/data/mysql/3306/mysqld start


相关TAG标签
上一篇:一两道题带你学会MYSQL多表查询
下一篇:ORACLEForm鼠标形态CURSOR_STYLE简析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站