> mariadb安装
    yum install mariadb-server

> 创建相关目录,及设置权限
    mkdir /mysqldb; mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv
    chown -R mysql:mysql /mysqldb
    
    #目录结构如下
    /mysqldb
    ├── 3306
    │   ├── data
    │   ├── etc
    │   ├── log
    │   ├── pid
    │   └── socket
    ├── 3307
    │   ├── data
    │   ├── etc
    │   ├── log
    │   ├── pid
    │   └── socket
    └── 3308
        ├── data
        ├── etc
        ├── log
        ├── pid
        └── socket

> 初始化数据库
    systemctl start mariadb; show variables like 'basedir%'; #查看mariadb安装路径
    mysql_install_db --datadir=/mysqldb/3306/data --user=mysql --basedir=/usr/
    mysql_install_db --datadir=/mysqldb/3307/data --user=mysql --basedir=/usr/
    mysql_install_db --datadir=/mysqldb/3308/data --user=mysql --basedir=/usr/
    
    > 拷贝并修改配置文件
    cp /etc/my.cnf /mysqldb/3306/etc/
    cp /etc/my.cnf /mysqldb/3307/etc/
    cp /etc/my.cnf /mysqldb/3308/etc/
    
    vi /etc/my.cnf /mysqldb/3306/etc/my.cnf
    [mysqld]
    port=3306
    datadir=/mysqldb/3306/data
    socket=/mysqldb/3306/socket/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
    log-error=/mysqldb/3306/log/mariadb.log
    pid-file=/mysqldb/3306/pid/mariadb.pid

#
    # include all files from the config directory
    #
    #!includedir /etc/my.cnf.d
    
    #其它2个实例的配置文件参考第1个实例的配置文件
    cp -a ./3306/etc/my.cnf ./3307/etc/my.cnf; cp -a ./3306/etc/my.cnf ./3308/etc/my.cnf
    
    > 准备启动脚本,设置权限
    cp mysqld /mysqldb/3306/; cp mysqld /mysqldb/3307/; cp mysqld /mysqldb/3308/
    chmod 700 /mysqldb/3306/mysqld; chmod 700 /mysqldb/3307/mysqld; chmod 700 /mysqldb/3308/mysqld

    #!/bin/bash
#
port=3306 #注意端口
mysql_user="root"
mysql_pwd="centos" #口令
cmd_path="/usr/bin"#2进制程序目录
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock" function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
} function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep
function_start_mysql
} case $ in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac

> 启动单个实例,注意如mariadb服务已经启动,请先停止该服务
    systemctl stop mariadb
    /mysqldb/3306/mysqld start; /mysqldb/3307/mysqld start; /mysqldb/3308/mysqld start

> 查看端口信息
    ss -nutl
    
    > 连接测试,设置密码
    mysql -S /mysqldb/3308/socket/mysql.sock
    show variables like '%port%';

    MariaDB [(none)]> show variables like '%port%';
+-------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------+-------+
| extra_port | 0 |
| innodb_import_table_from_xtrabackup | 0 |
| innodb_support_xa | ON |
| large_files_support | ON |
| port | 3306 |
| progress_report_time | 5 |
| report_host | |
| report_password | |
| report_port | 3306 |
| report_user | |
+-------------------------------------+-------+
10 rows in set (0.00 sec) MariaDB [(none)]> select user,host,password from mysql.user;
+------+------------+----------+
| user | host | password |
+------+------------+----------+
| root | localhost | |
| root | snowyts-ts | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | snowyts-ts | |
+------+------------+----------+
6 rows in set (0.00 sec) MariaDB [(none)]> update mysql.user set password=password('centos') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0 MariaDB [(none)]> select user,host,password from mysql.user;
+------+------------+-------------------------------------------+
| user | host | password |
+------+------------+-------------------------------------------+
| root | localhost | *128977E278358FF80A246B5046F51043A2B1FCED |
| root | snowyts-ts | *128977E278358FF80A246B5046F51043A2B1FCED |
| root | 127.0.0.1 | *128977E278358FF80A246B5046F51043A2B1FCED |
| root | ::1 | *128977E278358FF80A246B5046F51043A2B1FCED |
| | localhost | |
| | snowyts-ts | |
+------+------------+-------------------------------------------+
6 rows in set (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

> 连接需要输入口令
/mysqldb/3306/mysqld start
mysql -S /mysqldb/3306/socket/mysql.sock -p

mysql实现多实例的更多相关文章

  1. mysql sql优化实例

    mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...

  2. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

  3. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

  4. (0.2.7)Mysql安装——多实例安装

    (0.2.6)Mysql安装——多实例安装 待完善

  5. MySQL(mariadb)多实例应用与多实例主从复制

    MySQL多实例 mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307,3308),运行多个服务进程.这些 mysql 服务进程通过不同的 socket ...

  6. MySQL 触发器简单实例 - 转载

    MySQL 触发器简单实例 触发器:可以更新,删除,插入触发器,不同种类的触发器可以存在于同一个表,但同种类的不能有多个.一个更新.一个删除是可以共存的. ~~语法~~ CREATE TRIGGER  ...

  7. MySQL Group By 实例讲解(一)

    MySQL Group By 实例讲解 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GRO ...

  8. mysql:数据库与实例的区别

    题记:最近想更深入的了解mysql,所以买了一些书在学习,趁着这个机会开个坑,整理一下一些我认为重要的知识点. 刚工作那会经常能听到组长提到实例这个词,一开始我以为是服务器... 数据库(databa ...

  9. Mysql数据库-多实例主从复制-主从故障详解

    一.mysql结构 1.实例 1.什么是单实例 一个进程 + 多个线程 + 一个预分配的内存空间 2.多实例 多个进程 + 多个线程 + 多个预分配的内存空间 ](http://shelldon.51 ...

  10. 3、mysql的多实例配置(1)

    3.1.什么是mysql多实例: 3.2.mysql多实例的作用和问题: 3.3.mysql多实例生产应用的场景: 1.资金紧张的公司: 2.并发访问并不是很大的业务: 3.门户网站应用mysql多实 ...

随机推荐

  1. keil的自动补全功能

    设置完之后,在.c文件上试一下,发现还是不能自动补全. 后来去各种贴吧里找到了答案,是我的.c文件还没有保存到工程文件中去,所以不能实现这个功能.

  2. Taro开发小程序移动地图固定中间获取地址

    效果图如下: 绿色地标固定在中间,移动地图的时候获取对应信息. 先定义map. <Map className="location" id={location} latitud ...

  3. http缓存策略-nginx只缓存js和css不缓存html

    使用缓存,是提升web性能最重要的方式之一. 在开发单页面应用的时候,大量的单静态资源引用都是依赖于html这个文件的.例如: <!doctype html> <html lang= ...

  4. CAS 无锁队列

    队列是常用的数据结构,采用的FIFO(first in firstout)原则,新元素(等待进入队列的元素)总是被插入到尾部,而读取的时候总是从头部开始读取.在计算中队列一般用来做排队(如线程池的等待 ...

  5. margin的垂直方向塌陷

    标签(空格分隔): margin塌陷 margin垂直方向塌陷问题: 如下代码: <!DOCTYPE html> <html lang="en"> < ...

  6. Selenium+Java的TestNG测试报告优化

    本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...

  7. python的可变对象与不可变对象

    a = 1print(id(a))def fun(a): a = 2 print(a,id(a))fun(a)print(a,id(a)) # 1#为什么这里的a的值没有改变#因为在函数里变量赋值(内 ...

  8. mongo中用嵌套结构优势是什么

    首先需要知道,MongoDB是NoSQL中的一种,是不直接支持Join的,这是NoSQL的一个特点,不需要直接支持Join,可以将横向扩展以及性能做到更好. 但是这不等于说MongoDB不能做Join ...

  9. Spring:事务

    摘要 本文摘抄了Spring事务相关的一些理论,主要讲述事务的特性.事务的传播行为.事务的隔离规则. 关键词:事务特性,事务传播,事务隔离 一.什么是事务 事务是用来保证数据的完整性和一致性,正如金钱 ...

  10. mysql表理解

    4.1 索引组织表 1.在innodb存储引擎中,每张表都有个主键,如果在创建表时没有显式地定义主键,则innodb存储引擎会按如下方式选择或创建主键: ①:首先判断表中是否有非空的唯一索引,如果有, ...