安装MySQL

  1. 云栖社区>
  2. 博客>
  3. 正文

安装MySQL

优惠码发放 2019-08-12 10:03:47 浏览310
展开阅读全文

安装MySQL
一、MySQL官方网站介绍

1.Developer Zone : MySQL开发工程师板块

Articles : Oracle工程师自己的博客
Plant MySQL : 和MySQL相关从业人员的博客
Bugs : MySQL BugList
Worklog : 开发记录
Labs : MySQL实验性项目

2.Downloads : MySQL下载

Enterprise : MySQL企业版本相关,略过
Community : 社区版,我们下载和使用社区版
MySQL Community Server : MySQL Server
MySQL Fabric : 和管理相关的工具
MySQL Router : 路由中间件
MySQL Utilities : MySQL应用程序包
MySQL Proxy : MySQL代理。Alpha版本,不推荐

3.Documentation : MySQL文档

官方文档版面更改,下线离线文档在左侧Menu的下面
PDF A4
EPUB
HTML
二、MySQL下载
1.推荐下载Linux-Generic 版本
2.Source Code 版本主要作用是为了让开发人员研究源码使用,自己编译对性能提升不明显
3.不推荐 Version 5.5.x ,有部分bug
4.推荐使用Version 5.6.x 和Version 5.7.x

下载地址:
MySQL Community Server 5.7.9 Linux Generic x86-64bit
MySQL Community Server 5.6.27 Linux Generic x86-64bit

三、MySQL安装

MySQL 5.7.X安装

shell>groupadd mysql
shell>useradd -r -g mysql mysql
shell>cd /usr/local
shell>tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell>ln -s full-path-to-mysql-VERSION-OS mysql
shell>cd mysql
shell>mkdir mysql-files
shell>chmod 770 mysql-files
shell>chown -R mysql .
shell>chgrp -R mysql .
shell>bin/mysqld --initialize --user=mysql # 该步骤中会产生临时的root@localhost密码,需要自己记录下来

shell>bin/mysql_ssl_rsa_setup
shell>chown -R root .
shell>chown -R mysql data mysql-files
shell>bin/mysqld_safe --user=mysql &

Next command is optional

shell> cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

systemctl start mysqld

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

source /etc/profile

使用临时密码登录mysql后,系统会提示你要修改密码

shell>cat cat /etc/my.cnf|grep log_err |awk -F '=' '{print $2}' |grep password |awk '{print $NF}'

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password=password('123');
Query OK, 0 rows affected, 1 warning (5.00 sec)

MySQL启动
mysqld_safe --user=mysql & 即可启动,mysqld_safe 是一个守护mysqld 进程的脚本程序,旨在 mysqld 意外停止时,可以重启mysqld进程

也可以通过 INSTALL_BINARRY 中的步骤,使用/etc/init.d/mysql.server start 进行启动(启动脚本以你复制的实际名字为准,通常改名为mysqld 即 /etc/init.d/mysqld start)

配置文件my.cnf

[mysqld]

federated

basic settings

server-id = 11
port = 3306
user = mysql
bind_address = 10.166.224.32 #根据实际情况修改
autocommit = 0 # 5.6.X安装时,需要注释掉,安装完成后在打开
character_set_server=utf8mb4 默认字符集
skip_name_resolve = 1 禁止域名解析
max_connections = 800
max_connect_errors = 1000
datadir = /data/mysql_data #根据实际情况修改,建议和程序分离存放

datadir = /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/data

transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 134217728
tmp_table_size = 67108864
tmpdir = /tmp
max_allowed_packet = 16777216
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 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
wait_timeout = 1800 服务器关闭非交互连接之前等待活动的秒数。
read_buffer_size = 16777216
read_rnd_buffer_size = 33554432
sort_buffer_size = 33554432

log settings

log_error = error.log
slow_query_log = 1
slow_query_log_file = slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 90
long_query_time = 2
min_examined_row_limit = 100

replication settings

master_info_repository = TABLE
relay_log_info_repository = TABLE

log_bin = bin.log

sync_binlog = 1

gtid_mode = on

enforce_gtid_consistency = 1

log_slave_updates

binlog_format = row
relay_log = relay.log
relay_log_recovery = 1
binlog_gtid_simple_recovery = 1
slave_skip_errors = ddl_exist_errors

innodb settings

innodb_page_size = 8192
innodb_buffer_pool_size = 2G ##根据实际情况修改
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_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

innodb_log_group_home_dir = /redolog/ #根据实际情况修改

innodb_undo_directory = /undolog/ #根据实际情况修改

innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_flush_neighbors = 1
innodb_log_file_size = 4G #根据实际情况修改
innodb_log_buffer_size = 16777216
innodb_purge_threads = 1
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 67108864

semi sync replication settings

plugin_dir=/usr/local/mysql/lib/plugin #根据实际情况修改
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000

[mysqld-5.7]
innodb_buffer_pool_dump_pct = 40
innodb_page_cleaners = 4
innodb_purge_threads = 4
innodb_undo_log_truncate = 1
innodb_max_undo_log_size = 2G
innodb_purge_rseg_truncate_frequency = 128
binlog_gtid_simple_recovery=1
log_timestamps=system
transaction_write_set_extraction=MURMUR32

binlog_checksum=NONE # only for group replication

group replication setting

plugin_load=group_replication.so

loose_group_replication_group_name=e5720089-6b00-11e5-b248-fa163e30f9a2

loose_group_replication_start_on_boot=1

loose_group_replication_recovery_user='rpl_user'

loose_group_replication_recovery_password='rpl_pass'

show_compatibility_56=on

[mysqld_multi]
mysqld = mysqld_safe
log=/usr/local/mysql/mysql_multi.log

[mysqld1]
server-id=111
basedir=/usr/local/mysql
datadir=/data1
port=3307
socket=/tmp/mysql.sock1

[mysqld2]
server-id=222
basedir=/usr/local/mysql
datadir=/data2
port=3308
socket=/tmp/mysql.sock2

[mysqld3]
server-id=333
basedir=/usr/local/mysql56
datadir=/data3
port=3309
socket=/tmp/mysql.sock3

几个重要的参数配置和说明

innodb_log_file_size=4G 做实验可以更改的小点,线上环境推荐使用4G,以前5.5和5.1等版本之所以官方给的值很小,是因为太大后有BUG,现在BUG已经修复

innodb_undo_logs = 128 和 innodb_undo_tablespaces = 3 建议在安装之前就确定好该值,后续修改比较麻烦

[mysqld], [mysqld-5.7] 这种 tag 表明了下面的配置什么版本下才生效,[mysqld]下均生效

autocommit 这个参数在5.5.X以后才有,安装5.6.X的时候要注意先把该参数注释掉,等安装完成后,在打开,5.7.X无需预先注释

datadir, innodb_log_group_home_dir, innodb_undo_directory 一定要注意他的权限是 mysql:mysql
四、mysql-utilities 的安装

tar xvf mysql-utilities-1.6.5.tar.gz

cd mysql-utilities-1.6.5

yum -y install mysql-utilities.noarch

python ./setup.py build

python ./setup.py install

安装完成,至此mysqlfrm mysqlrplshow等功能都可以使用了。
原文地址https://www.cnblogs.com/green-frog-2019/archive/2019/08/11/11337260.html

网友评论

作者关闭了评论
优惠码发放
+ 关注