安装MySQL

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 安装MySQL一、MySQL官方网站介绍1.Developer Zone : MySQL开发工程师板块Articles : Oracle工程师自己的博客Plant MySQL : 和MySQL相关从业人员的博客Bugs : MySQL BugListWorklog : 开发记录Labs : MySQL实验性项目2.

安装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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
28 4
|
1月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
292 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
54 3
|
19天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
34 2
|
20天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
21天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
6天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
49 0
|
1月前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
111 4
|
1月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
168 1
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
226 2