tarsdocs
  • Readme.md
  • CLA
  • LICENSE
  • 基础介绍
    • 简介
    • 基础概念
    • 基础通信协议 Tars
    • 统一通信协议 Tup
    • 开发模式介绍
    • 模板配置
    • 服务市场
    • 服务扩展
    • 框架版本说明
  • 开源版框架介绍
    • 开源版本部署
      • 部署总体介绍
      • Docker环境安装
      • Mysql安装
      • 框架源码部署(Linux/Mac)
      • 框架源码部署(Windows)
      • 框架Docker部署
      • 框架节点部署
      • 业务服务容器化
      • 框架K8SDocker 部署
      • 框架K8STARS 部署
      • 框架K8SFramework 部署(强烈推荐)
      • 框架更新及扩容
      • 调用链升级注意事项
      • TarsWeb-v3.0.3升级说明
    • 开源版管理平台
      • TarsWeb说明
      • web用户体系
      • web管理平台 API
  • 企业版本介绍
    • 企业版说明
    • 框架集群化机制
    • 框架单节点机制
    • 使用二进制包部署
    • 使用容器部署
    • 业务服务一主多备机制
    • 命令行控制终端
    • IP-LIST级联缓存机制
    • 多数据中心管理
    • 多网络支持
    • 第三方服务管理
    • 数据产生和管理机制
    • 密码重置
    • TarsPython介绍
  • 框架关键特性
    • 业务配置
    • 服务监控
    • 无损发布/重启
    • 调用链
    • IDC分组
    • 鉴权功能
  • TarsCPP
    • 编译
    • 快速开发入门
    • 使用指南
    • 开发规范
    • 服务线程说明文档
    • protobuf 协议支持文档
    • 第三方协议支持
    • HTTP1 支持
    • HTTP2 支持
    • TLS 通信支持
    • Push 功能说明
    • PushCallback 功能说明
    • Cookie 支持
    • 队列模式
    • 手动绑定
    • 性能数据
    • 2.x 版本变化
    • 3.x 版本变化
    • 协程版本说明
    • 基础类库说明
    • [案例]
      • 框架快速入门
      • Http 服务示例
  • TarsJava
    • 快速开始
    • 快速开发入门
    • [使用指南]
      • Tars 服务开发与上线
      • HTTP 服务开发与上线
      • 生成接口调用文件
    • [性能测试]
      • tars java 压测代码
  • TarsGo
    • 基本介绍
    • 快速开始
    • 使用指南
    • cmake 管理代码
    • pb2tarsgo
    • 性能数据
    • 使用示例
  • TarsPHP
    • 搭建 php 环境
    • 快速开发入门
    • [快速起步]
      • 搭建 HttpServer
      • 搭建 TimerServer
      • 搭建 TcpServer
      • 搭建 WebSocketServer
      • 弹幕活动实战
    • [框架简介]
      • 简介
      • tars-server
      • tars-client
      • tars-config
      • tars-deploy
      • tars-extension
      • tars-log
      • tars-monitor
      • tars-registry
      • tars-report
      • tars-utils
      • tars2php
    • [高阶应用]
      • PHP 的 Swoole 框架如何接入 Tars
      • 与 thinkphp 结合使用
      • 与 Swoft 结合使用
      • 与 Laravel 结合使用
      • 与 Yii2 结合使用
      • 持续集成方案
    • [其他]
      • 常见问题
      • 如何 Debug
      • changelog
      • 其他外部文档
  • Tars.js
    • 基本介绍
    • 脚手架
    • 快速开发入门
    • @tars/stream
    • @tars/rpc
    • @tars/logs
    • @tars/config
    • @tars/monitor
    • @tars/notify
    • @tars/utils
    • @tars/dyeing
    • @tars/node-agent
    • @tars/winston-tars
    • tars2node
  • K8SFramework
    • [安装和使用说明]
      • 介绍
      • 特性
      • 安装
      • 升级
      • 云原生运维
      • 管理平台
      • 证书
    • [开发环境构建]
      • Dockerfile 说明
      • 服务发布流程说明
      • 制作基础编译镜像
      • 制作业务服务镜像
      • 制作 Helm 包
      • 发布业务镜像到 K8S 集群
      • 服务发布示例
      • 如何调试业务服务
  • 服务扩展
    • 云告警
    • 接口及压测工具
    • 网关服务
    • dcache缓存服务
    • 发送邮件服务
    • 一致性存储服务
    • 一致性存储web管理平台
    • 唯一计数服务
  • 常见问题
    • 安装常见问题
    • Issues
    • Issues-tarscpp
    • Issues-tarsjava
    • Issues-tarsgo
    • Issues-tarsphp
  • 开源合作
    • TarsFramework 项目 Git 合作规范
  • 直播视频
    • B 站 TARS 培训系列课程
  • 相关文章
    • TARS 技术文章
  • 其它资源分享
    • 下载
    • Tars 介绍.pptx
    • TarsPHP 解密.pdf
    • TarsJava 本地调试.pdf
    • 微服务在腾讯的业务实践.pptx
Powered by GitBook
On this page
  • 目录
  • 1 简介
  • 2 源码安装
  • 3 yum 安装
  • 4 docker 安装 mysql5
  • 5 docker 安装 mysql8

Was this helpful?

  1. 开源版框架介绍
  2. 开源版本部署

Mysql安装

PreviousDocker环境安装Next框架源码部署(Linux/Mac)

Last updated 3 years ago

Was this helpful?

目录

1 简介

Tars 框架的数据最终都存储在 mysql 中, 因此需要安装 mysql。

mysql 建议使用主从方式安装, 正常情况下, mysql 即使 crash 了, 也不会影响 Tars 框架上服务的运行, 但是会影响服务的发布和部署, 以及影响管理平台的使用。

mysql 安装有几种方式, 任选一种即可.

2 源码安装

源码安装可以对数据库进行自定义。

安装前,确定系统是否安装依赖库,若没有,可以执行:

yum install -y ncurses-devel zlib-devel cmake make gcc gcc-c++

设置安装目录,切换至 root 用户

cd /usr/local
mkdir mysql-5.6.26
chown ${普通用户}:${普通用户} ./mysql-5.6.26
ln -s /usr/local/mysql-5.6.26 /usr/local/mysql

用 utf8 的安装方式 下载 mysql 源码(这里使用的是 mysql-5.6.26),用 utf8 的安装方式 mysql,解压后编译: 下面增加了 mysql-5.6.26 的安装方式

cd ${mysql安装目录}
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz
tar -zxvf mysql-5.6.26.tar.gz
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.26 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make
make install

注意,对于用 Tars 的 c++进行开发编译的服务,mysql 建议采用静态库,源码编译,避免所有服务器都要安装 mysql 的动态库。

对于在服务器用 Tars 的 c++进行开发编译服务代码而言,经过上面步骤就可以进行编译安装 Tars 开发框架了。

若要是搭建 Tars 框架的运行环境,需要以下步骤,切换至 root 用户,对 mysql 进行配置。

以下脚本有删除动作(rm -rf /usr/local/mysql/data), 请注意!!

yum install perl
cd /usr/local/mysql
useradd mysql
rm -rf /usr/local/mysql/data
mkdir -p /data/mysql-data
ln -s /data/mysql-data /usr/local/mysql/data
chown -R mysql:mysql /data/mysql-data /usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/mysql
**如果/etc/目录下有my.cnf存在,需要把这个配置删除了**
rm -rf /etc/my.cnf
yum install -y perl-Module-Install.noarch
perl scripts/mysql_install_db --user=mysql
vim /usr/local/mysql/my.cnf

补充了上面删除 my.cnf 的命令 rm -rf /etc/my.cnf

给一个 my.cnf 配置实例:

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin

# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
# port = .....
# server_id = .....
socket = /tmp/mysql.sock

bind-address=${your machine ip}

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意将 bind-address 改为部署机器的 IP

启动 mysql

service mysql start
chkconfig mysql on

结束 mysql

service mysql stop

添加 mysql 的 bin 路径

vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
export PATH

修改 root 密码(采用 root 密码)

./bin/mysqladmin -u root password 'root@appinside'
./bin/mysqladmin -u root -h ${主机名} password 'root@appinside'

注意${主机名}需要修改成自身机器的名称或者 IP,可以通过查看/etc/hosts

添加 mysql 库路径

vim /etc/ld.so.conf
/usr/local/mysql/lib/
ldconfig

mysql 主从配置可以参考网上教程

master 赋予权限:

GRANT REPLICATION SLAVE ON *.* to 'mysql-sync'@'%' identified by 'sync@appinside'

slave 设置主备同步项

change master to master_host='${备机Ip}',master_user='mysql-sync',master_password='sync@appinside' ,master_log_file='iZ94orl0ix4Z-bin.000004',master_log_pos=611;
stop slave
start slave
show master status\G;
show slave status\G;

注意${备机 Ip}需要修改成备机数据库的 Ip

3 yum 安装

在 mysql 5.7 版本之后删除了源码中的 mysql_install_db.sh 安装脚本,因此上述方法不适用。 yum 安装相对便捷,但是没办法实现自定义安装。如果对自定义安装有需求的请使用源码安装。

从 yum repository 安装 MySQL

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
yum -y install  mysql-devel

这样 mysql 就安装好了 其中 wget 中的库地址可以根据需要替换版本号 如果 wget 无法安装,可以尝试按照下述步骤将 mysql repository 添加到本地服务,然后再重新执行上述命令

sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

设置 MySQL

启动 mysql 并查看运行状态

systemctl start  mysqld.service
systemctl status mysqld.service

mysql 开始运行并通过 3306 端口进行连接。

通过 yum 安装 mysql 的话 root 账号会默认设置一个密码,可以通过下面的方式获得。

grep "password" /var/log/mysqld.log

使用这个密码登陆 root 的账户。mysql 要求必须更改密码才能做数据库操作。 如果你安装的 mysql 版本是 5.7 及以上,mysql 的密码设置有安全性要求(长度、大小写、特殊字符),以下两种方式可以选择

  1. 设置满足要求的密码

  2. 通过下面的方式降低密码安全性规则

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

修改之后只有 6 个字符的最小长度限制 接着修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '${your password}';

mysql 主从支持参照上一节

4 docker 安装 mysql5

使用 docker 安装来安装 mysql(目前只考虑了 linux 上, 时间和本机同步)

docker pull mysql:5.6
docker run --name mysql --net=host -e MYSQL_ROOT_PASSWORD='tars@12345' -d -p 3306:3306 \
        -v/etc/localtime:/etc/localtime \
        -v /data/mysql-data:/var/lib/mysql mysql:5.6

安装 mysql5.7 方式类似, 修改 mysql:${version}的版本号即可

注意:--net-host 表示 Docker 网络和本机一样

5 docker 安装 mysql8

如果你使用 mysql8, 那么请注意, mysql8 默认开启了 ssl, 以及密码验证使用了 caching_sha2_password, 因此启动 mysql8 时, 需要关闭 ssl 以及默认使用 mysql_native_password 方式, 例如:

docker run -d --restart=always --net=host -p 3306:3306 -v /usr/local/mysql-data-8:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=tars@12345 -e TZ=Asia/Shanghai mysql:8 --skip_ssl --default-authentication-plugin=mysql_native_password

源码编译 mysql8 类似, 需要关闭 ssl 以及启用 mysql_native_password

服务器安装 docker 请参考

docker
简介
源码安装 Mysql
yum 安装 mysql
docker 安装 mysql5
docker 安装 mysql8