MySQL多配置方式的多实例的部署
安装MySQL需要注意的事项:
选择MySQL的版本的建议:
1)稳定版:选择开源的社区版的稳定版GA版本
2)选择MySQL数据库GA版本发布后六个月以后得GA版本
3)选择发布版本前后几个月没有大的修复BUG的版本。而不是有大量BUG修复的版本
4)考虑开发人员开发程序使用的版本是否兼容你选的版本
这里我装的MySQL的版本是5.6.23
操作系统是centos 6.5
mkdir –p /data{3306,3307}/data (存放数据文件,二进制日志,sock和pid文件)
mkdir –p /data/{3306,3307}/logs (存放错误日志和慢查询日志)
chown –R mysql.mysql /data

记得授权
chown mysql.mysql /data -R
然后我们下载MySQL的压缩包
创建MySQL的用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/3306/data \
-DSYSCONFDIR=/data/3306 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/data/3306/data/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLE_DOWNLOADS=1
make
这里慢慢的等吧,好长时间的
make install
在编译的时候看看有没有错误,有错误的时候,根据提示解决一下
注意,这里我们重新编译的时候需要执行以下的操作
make clean
rm -f CMakeCache.txt
解决完错误提示,重新编译一下
make
make install
接着我们要做的就是初始化数据库了
[root@kz-003 scripts]# pwd
/usr/local/mysql/scripts
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql 注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
接下来我们要做的就是创建配置文件了
[root@kz-003 3306]# cat my.cnf
[client]
port = 3306
socket = /data/3306/data/mysql.sock [mysqld]
port=3306
socket = /data/3306/data/mysql.sock
pid-file = /data/3306/data/mysql.pid
basedir = /usr/local/mysql
datadir = /data/3306/data
server-id=999
log-bin=mysql-bin
log-bin-index= mysql-bin.index innodb_buffer_pool_size = 512M
join_buffer_size = 32M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # LOGGING
log_error=/data/3306/logs/mysql-error.log
slow_query_log_file=/data/3306/logs/mysql-slow.log
slow_query_log=1
五、修改启动脚本
可自行编写一个启动脚本,可参考/etc/init.d/portmap进行编写
脚本思想:
1、 启动mysql,使用mysqld_safe启动
mysqld_safe--defaults-file=/data3306/my.cnf --user=mysql \
--basedir=/usr/local/mysql--datadir=/data/3306/data &
2、 停止mysql,使用mysqladmin平滑停止
mysqladmin –uroot –p123456 –S /data/3306/data/mysql.sock shutdown
3、 重启mysql
先停止,后启动。
接下来我们要做的就是启动文件了
[root@kz-003 3306]# cat mysqld
#!/bin/bash
mysql_port=3306
mysql_username="root"
mysql_password="123456"
function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/${mysql_port}/my.cnf 2>&1 > /dev/null &
}
function_stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /data/${mysql_port}/data/mysql.sock shutdown
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}
case $1 in
start)
function_start_mysql;;
stop)
function_stop_mysql;;
kill)
function_kill_mysql;;
restart)
function_stop_mysql;;
*)
echo "Usage: /data/${mysql_port}/mysqld {start|stop|restart|kill}";;
esac
这里我们就可以启动数据库了,要记住这它可执行权限
chmod a+x mysqld
/data/3306/mysqld start
这里我们更改一下root的密码
[root@kz-003 3306]# /usr/local/mysql/bin/mysql -u root
mysql> SET PASSWORD = PASSWORD('123456');
或者使用下面的这个方法
/usr/local/mysql/bin/mysqladmin -uroot password 'password' -S /data/dbdata_3306/mysql.sock 因为这里使用root用户启动停止数据库有点不安全,所以这里我们新建一个用户来起停数据库
GRANT SHUTDOWN ON *.* TO 'admin'@'localhost' IDENTIFIED BY '123456';
flush privileges;
创建了admin帐号以后脚本的stop功能和restart功能就正常了!
这里我们对应修改一下启动脚本中的账号密码
在安装完成之后,我们删除匿名用户和空用户
mysql> select user,host from mysql.user;
+----------+-----------+
| user | host |
+----------+-----------+
| Damocles | % |
| dba | % |
| huamu | % |
| root | % |
| root | 127.0.0.1 |
| root | ::1 |
| | kz-003 |
| root | kz-003 |
| | localhost |
| admin | localhost |
| root | localhost |
+----------+-----------+
11 rows in set (0.00 sec)
mysql> delete from mysql.user where user='';
mysql> delete from mysql.user where host='kz-003';
mysql> delete from mysql.user where host='::1'; mysql> select user,host from mysql.user;
+----------+-----------+
| user | host |
+----------+-----------+
| Damocles | % |
| dba | % |
| huamu | % |
| root | % |
| root | 127.0.0.1 |
| admin | localhost |
| root | localhost |
+----------+-----------+
7 rows in set (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
更改环境变量
vim /etc/profile 添加下面一行内容
PATH=/usr/local/mysql/bin/:${PATH}
source /etc/profile
在配置环境变量的时候,我们把MySQL的环境变量放在前面
参照文章:
http://blog.chinaunix.net/uid-20639775-id-3438560.html
http://crazy123.blog.51cto.com/1029610/1611887/
MySQL多配置方式的多实例的部署的更多相关文章
- SpringBoot 整合 Mybatis + Mysql——XML配置方式
一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两 ...
- EF Core MySql GUID配置方式
builder.Property(m => m.Id) .HasColumnName("Id") .ForMySQLHasColumnType("char(36)& ...
- 绿色版的mysql安装配置方式
解压下载好的压缩包 copy 一份my-default.ini改名字为my.ini为mysql的配置文件 打开my.ini 修改配置文件 默认的原版文件为 # For advice on how to ...
- 5.7.20 多实例——MGR部署实战
数据库 | MySQL:5.7.20 多实例——MGR部署实战 MGR介绍 基于传统异步复制和半同步复制的缺陷——数据的一致性问题无法保证,MySQL官方在5.7.17版本正式推出组复制(MySQL ...
- MySQL 5.5.35 单机多实例配置详解
一.前言 二.概述 三.环境准备 四.安装MySQL 5.5.35 五.新建支持多实例的配置文件(我这里配置的是四个实例) 六.初始化多实例数据库 七.提供管理脚本 mysqld_multi.serv ...
- 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)
[需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...
- mysql、mariadb安装和多实例配置
本文目录:1. mysql单实例安装 1.1 rpm安装mysql 1.2 通用二进制包安装mysql 1.2.1 初始化数据库 1.2.2 安装后的规范化操作 1.3 编译安装 1.3.1 编译安装 ...
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate配置方式
Hibernate配置方式 Hibernate给人的感受是灵活的,要达到同一个目的,我们可以使用几种不同的办法.就拿Hibernate配置来说,常用的有如下三种方式,任选其一. 在 hibernate ...
随机推荐
- iOS 摇一摇的功能
效果如下 相关素材 相关代码如下 #import "ShakeViewController.h" #import <AudioToolbox/AudioToolbox.h&g ...
- 常用API——Math对象型、Number型
Math.abs(num) : 返回num的绝对值 Math.acos(num) : 返回num的反余弦值 Math.asin(num) : 返回num的反正弦值 Math.atan(num) : 返 ...
- T-SQL 常用DDL语句
数据库操作 删除数据库 drop database database_name(数据库名) 修改数据库名 alter database database_name(原数据库名) modify name ...
- 关于一个sql的优化分析
应用这边新上线了一个查询,正在跑,让我看下状态以及分析下能不能再快点. 如下sql: SELECT x.order_no , order_date+7/24 AS order_date, addres ...
- 大型web系统数据缓存设计
1. 前言 在高访问量的web系统中,缓存几乎是离不开的:但是一个适当.高效的缓存方案设计却并不容易:所以接下来将讨论一下应用系统缓存的设计方面应该注意哪些东西,包括缓存的选型.常见缓存系统的特点和数 ...
- kmeans算法c语言实现,能对不同维度的数据进行聚类
最近在苦于思考kmeans算法的MPI并行化,花了两天的时间把该算法看懂和实现了串行版. 聚类问题就是给定一个元素集合V,其中每个元素具有d个可观察属性,使用某种算法将V划分成k个子集,要求每个子集内 ...
- WPF 自定义CheckBox
WPF中原始的CheckBox样式很简单,有时候不适用于WPF那种炫酷的界面. 本章节讲述如何设计一个匹配业务需要.好看的CheckBox(继上篇<WPF-自定义ListBox>中的Che ...
- js的encodeURIComponent与java的URLEncoder的区别
js中的encodeURIComponent这个函数和java中的URLEncoder有少数不一样的.如下表格就是区别 ascii java js + %20 ! %21 ! ' %27 ' ( ...
- logback配置详解2<appender>
logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...
- Windows7开机登录界面背景图修改
首先,准备一张文件大小不超过250K的.jpg格式图片,文件名为:BackgroundDefault,图片分辨率建议与屏幕分辨率一致,因为这张背景无法像壁纸一样拉伸或者填充的. 打开这个路径,[C:\ ...