mysql安装与多实例(详解)

mysql安装及多实例,配置优化

yum install tree nmap sysstat lrzsz dos2unix -y

安装相关的包
tar -xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
make && make install

yum install gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*

1.添加用户
groupadd mysql
useradd mysql -M -s /sbin/nologin -g mysql

2.
mkdir -p /database/mysql

chown mysql.mysql -R /database/mysql

tar -zxvf mysql-5.6.24.tar.gz
cd mysql-5.6.24
make clean
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/database/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \

make && make install

/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf

chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

配置环境变量
echo ‘export PATH=/usr/local/mysql/bin:$PATH’ >>/etc/profile
source /etc/profile
echo $PATH

初始化数据库
cd /usr/local/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/database/mysql

chown mysql.mysql -R /database/mysql
chmod -R 1777 /tmp/

/etc/init.d/mysqld start

常见问题:

登录mysql故障解决
ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘(using password: NO)
问题解决:
杀死进程 pkill mysqld
删除数据文件 rm -rf /database/mysql/data/*
重新初始化 cd /usr/local/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/database/mysql

系统报错字符集问题解决
改成UTF-8

vim /etc/sysconfig/i18n

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

基本优化

简单清理用户表:
查看用户表 select user,host from mysql.user;
删除密码为空用户 delete from mysql.user where Password=‘‘;
删除用户为空 delete from mysql.db where User=‘‘;
删除IPV6 delete from mysql.user where host=‘::1‘;

添加管理员账号:
grant all privileges on *.* to [email protected]‘localhost‘ identified by ‘123456‘ with grant option;
flush privileges;

增加root密码:

mysqladmin -u root password ‘linuxboy‘

mysql多实例

就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程。这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,
启动程序,数据文件。在提供服务时候,多实例MySQL在逻辑上看来是各自独立的,多个实例的自身是根据配置文件对应的设定值,来取得相关硬件资源的多少。

作用与缺点
有效利用服务器的资源,单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。
高并发下某一个实例占用很多资源互相争抢问题

单一配置文件部署方案:
mysqld_multi --config-file=/database/mysql/my_multi.cnf start 1,2,3,4,5,6,7启动
耦合性太高

mysql多实例安装

yum install gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl* libaio-devel

1.添加用户
groupadd mysql
useradd mysql -M -s /sbin/nologin -g mysql

创建mysql多实例的数据文件目录

mkdir -p /data/{3306,3307}/data

主要修改配置文件:
主要是修改配置文件路径
[client]
port = 3306
socket = /data/3306/mysql.sock

[mysqld]

port = 3306
socket = /data/3306/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3306/data

[mysqld_safe]

log-error=/data/3306/ilanni.err
pid-file=/data/3306/ilanni.pid

******************************************************

[client]
port = 3307
socket = /data/3307/mysql.sock

[mysqld]

port = 3307
socket = /data/3307/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3307/data

[mysqld_safe]

log-error=/data/3307/ilanni.err
pid-file=/data/3307/ilanni.pid

多实例启动脚本

#!/bin/bash

port=3306
mysql_user="root"
mysql_passwd="123456"
CmdPath="/usr/local/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"

function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting Mysql...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/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"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_passwd} -S /data/${port}/mysql.sock shutdown
fi
}

function_restart_mysql()
{
printf "Restang Mysql...\n"
function_stop_mysql
sleep 2
function_start_mysql
}

case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

授权mysql用户

chown -R mysql.mysql /data

初始化mysql多实例的数据库文件
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql –datadir=/data/3306/data –user=mysql

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql –datadir=/data/3307/data –user=mysql
启动mysql

/data/3306/mysql start

单实例增加密码

mysqladmin -u root -S /data/3306/mysql.sock password ‘linuxboy‘

mysql 应用管理

找回丢失的Mysql root 用户密码

使用--skip-grant-tables启动Mysql,忽略授权登录验证

mysqld_safe --skip-grant-tables --user=mysql &

多实例Mysql启动修改丢失root 密码方法

启动时加--skip-grant-tables参数
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &
mysql -u root -p -s /data/3306/mysql.sock

时间: 2024-10-05 21:19:51

mysql安装与多实例(详解)的相关文章

MySql 安装及初级使用详解

1. sudo apt-get install mysql-server, input administrator password , '123' 2. enter mysql promot in command line, 'mysql -u root -p', input password 3. create database "CREATE DATABASE xoops:" 4. 允许root远程登陆: 从所有主机:grant all privileges on *.* to

mysql事务处理用法与实例详解

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB:支持事务 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败. 实际上,会俱乐部许多SQL查询到一个组中,将执行所有的人都一起作为事务的一部分. 事务的特性: 事务有以下四

[转]mysql事务处理用法与实例详解

转自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB:支持事务 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败. 实际上,会俱

mysql数据库分区功能及实例详解

分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解 一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存

23、磁盘管理—磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

linux基础-磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(一)

Spring更新到3.0之后,其MVC框架加入了一个非常不错的东西——那就是REST.它的开放式特性,与Spring的无缝集成,以及Spring框架的优秀表现,使得现在很多公司将其作为新的系统开发框架.大象根据实际的项目经验,以之前SSH2例子为基础,对其进行一次大改造,详细的为大家讲解如何实现SSM3全注解式的开发. 这次大象将采取两种构建方式,一是很多人喜欢用的MyEclipse,另一个,则是用Eclipse+Maven.这一篇,将主要讲解开发环境设置与Maven构建方式. 1. 开发环境

转:【工欲善其事必先利其器】—Entity Framework实例详解

开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/30/ef6-alpha-1-available-on-nuget.aspx 俗话说:“工欲善其事必先利其器”,在深入讲解Entity Framework之前,先准备一下开发工具以及前期的配置. 一.开发工具 开发工具基本略过,这里说一下,我使用的是Visual Studio 2012,Entity

Cocos2d-x 3.X手游开发实例详解

Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐) 于浩洋 著   ISBN 978-7-121-23998-4 2014年9月出版 定价:59.00元 356页 16开 编辑推荐 以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法 以热门游戏2048.卡牌为例,完整再现手游的开发过程 Cocos2d-x作者之一林