cmake安装mysql及多实例配置方法

一、安装mysql

1、 生产环境如何选择MySQL版本

1. 选择社区版的稳定GA版本
2. 可以选择5.1或5.5.互联网公司主流5.5, 其次是5.1和5.6
3. 选择发布后6个月以上的GA版
4. 要选择前后几个月没有打的BUG修复的版本,而不是大量修复BUG的几种版本
5. 最好选择向后较长时间没有更新发布的版本
6. 考虑开发人员开发程序使用的版本是否兼容你选的版本
7. 企业非核心业务采用新版本的数据库GA版本软件
8. 作为内部开发测试数据库环境,跑大概3-6个月时间
9. 向DBA高手请教,或者在技术氛围好的群里和大家一起交流,使用真正高手用过的好用的GA版本产品
10. 经过上述工序后,若没有重要的功能BUG或性能瓶颈,则可以开始考虑作为任何业务数据服务的后端数据库软件。

2、 MySql数据库的多种安装方法

1. yum/rpm安装
2. 常规方式编译安装
3. 采用cmake方式编译安装
4. 二进制方式免编译安装

3、 需要的软件

cmake-2.8.8.tar.gz
rubymysql-5.5.32.tar.gz

4、编译安装cmake

mkdir /home/oldboy/tools
cd /home/oldboy/tools/
tar xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
make &make install

5、编译安装mysql

tar xf mysql-5.5.32.tar.gz
yum install ncurses-devel -y
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql

6、cmake编译安装mysql

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 -DMYSQL_DATADIR=/application/mysql-5.5.32/data -DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0

make && make install

export PATH="/application/mysql/bin:$PATH"

echo ‘export PATH=/usr/local/mysql/bin:$PATH‘ >> /etc/profile

7、检查是否安装成功

echo $?
0   (输出0表示成功)

8、创建软连接

ln -s /application/mysql-5.5.32 /application/mysql

9、复制mysql配置文件

cd /home/oldboy/tools/mysql-5.5.32
cp support-files/my-small.cnf /etc/my.cnf

二、部署多实例的MySQL数据库

1、使用创建以下目录及文件

[[email protected] tools]#mkdir -pv /data/{3306,3307}/data
[[email protected] tools]# tree data
data
├── 3306
│   ├── my.cnf
│   └── mysql
└── 3307
    ├── my.cnf
    └── mysql

2 directories, 4 files
[[email protected] tools]#

my.cnf文件示例,此例是3306端口的配置,3307实例要将以下两个文件中所有的3306替换成你的实例端口,此次是3307.
在vim编辑器下:%s/3306/3307/g
并修改my.cnf下server-id与其他实例不同id(server-id = 1或2总之不一样就行)

 1 [client]
  2 port            = 3306
  3 socket          = /data/3306/mysql.sock
  4
  5 [mysql]
  6 no-auto-rehash
  7
  8 [mysqld]
  9 user    = mysql
 10 port    = 3306
 11 socket  = /data/3306/mysql.sock
 12 basedir = /application/mysql
 13 datadir = /data/3306/data
 14 open_files_limit    = 1024
 15 back_log = 600
 16 max_connections = 800
 17 max_connect_errors = 3000
 18 table_cache = 614
 19 external-locking = FALSE
 20 max_allowed_packet =8M
 21 sort_buffer_size = 1M
 22 join_buffer_size = 1M
 23 thread_cache_size = 100
 24 thread_concurrency = 2
 25 query_cache_size = 2M
 26 query_cache_limit = 1M
 27 query_cache_min_res_unit = 2k
 28 #default_table_type = InnoDB
 29 thread_stack = 192K
 30 #transaction_isolation = READ-COMMITTED
 31 tmp_table_size = 2M
 32 max_heap_table_size = 2M
 33 long_query_time = 1
 34 #log_long_format
 35 #log-error = /data/3306/error.log
 36 #log-slow-queries = /data/3306/slow.log
 37 pid-file = /data/3306/mysql.pid
 38 log-bin = /data/3306/mysql-bin
 39 relay-log = /data/3306/relay-bin
 40 relay-log-info-file = /data/3306/relay-log.info
 41 binlog_cache_size = 1M
 42 max_binlog_cache_size = 1M
max_binlog_size = 2M
 44 expire_logs_days = 7
 45 key_buffer_size = 16M
 46 read_buffer_size = 1M
 47 read_rnd_buffer_size = 1M
 48 bulk_insert_buffer_size = 1M
 49 #myisam_sort_buffer_size = 1M
 50 #myisam_max_sort_file_size = 10G
 51 #myisam_max_extra_sort_file_size = 10G
 52 #myisam_repair_threads = 1
 53 #myisam_recover
 54
 55 lower_case_table_names = 1
 56 skip-name-resolve
 57 slave-skip-errors = 1032,1062
 58 replicate-ignore-db=mysql
 59
 60 server-id = 1
 61
 62 innodb_additional_mem_pool_size = 4M
 63 innodb_buffer_pool_size = 32M
 64 innodb_data_file_path = ibdata1:128M:autoextend
 65 innodb_file_io_threads = 4
 66 innodb_thread_concurrency = 8
 67 innodb_flush_log_at_trx_commit = 2
 68 innodb_log_buffer_size = 2M
 69 innodb_log_file_size = 4M
 70 innodb_log_files_in_group = 3
 71 innodb_max_dirty_pages_pct = 90
 72 innodb_lock_wait_timeout = 120
 73 innodb_file_per_table = 0
 74 [mysqldump]
 75 quick
 76 max_allowed_packet = 2M
 77
 78 [mysqld_safe]
 79 log-error=/data/3306/mysql_oldboy3306.err
 80 pid-file=/data/3306/mysqld.pid

  

mysql文件示例

10 #init
 11 port=3306
 12 mysql_user="root"
 13 mysql_pwd="oldboy"
 14 CmdPath="/application/mysql/bin"
 15 mysql_sock="/data/${port}/mysql.sock"
 16 #startup function
 17 function_start_mysql()
 18 {
 19     if [ ! -e "$mysql_sock" ];then
 20       printf "Starting MySQL...\n"
 21       /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
 22     else
 23       printf "MySQL is running...\n"
 24       exit
 25     fi
 26 }
 27
 28 #stop function
 29 function_stop_mysql()
 30 {
 31     if [ ! -e "$mysql_sock" ];then
 32        printf "MySQL is stopped...\n"
 33        exit
 34     else
 35        printf "Stoping MySQL...\n"
 36        ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
 37    fi
 38 }
 39
 40 #restart function
 41 function_restart_mysql()
 42 {
 43     printf "Restarting MySQL...\n"
 44     function_stop_mysql
 45     sleep 2
 46     function_start_mysql
 47 }
 48
 49 case $1 in
 50 start)
 51     function_start_mysql
 52 ;;
 53 stop)
 54     function_stop_mysql
 55 ;;
 56 restart)
 57     function_restart_mysql
 58 ;;
 59 *)
 60     printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
 61 esac               

2、授权及增加执行权限

chown -R mysql.mysql /data
find /data/ -type f -name "mysql"|xargs chmod +x

3、初始化数据库(两个实例分别初始化)

cd /application/mysql/scripts/
./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql

4、启动多实例

/data/3306/mysql start
Starting MySQL...
/data/3307/mysql start
Starting MySQL...

5、多实例数据库的登陆

本地登陆:
mysql -S /data/3306/mysql.sock
远程登录:
mysql –h主机名 -u用户名 –p密码 –P3306
mysql> system mysql -S /data/3307/mysql.sock

6、 为用户增加密码,修改密码

mysqladmin -S /data/3306/mysql.sock -uroot password ‘123.asd‘
mysqladmin -S /data/3307/mysql.sock –uroot –p123.asd password ‘123456‘

  

7、在线添加一个实例3308

mkdir /data/3308/data -p
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3308/data/ --user=mysql
cp /data/3307/my.cnf /data/3308/
cp /data/3307/mysql /data/3308/
sed -i ‘s#3307#3308#g‘ /data/3308/my.cnf
sed -i ‘s#3307#3308#g‘ /data/3308/mysql
chmod +x /data/3308/mysql
chown -R mysql.mysql /data/3308/
/data/3308/mysql start

  

时间: 2024-10-28 16:09:59

cmake安装mysql及多实例配置方法的相关文章

编译安装MySQL搭建多实例

上一篇博客介绍的是:通过 MySQL二进制包搭建多实例服务http://aby028.blog.51cto.com/5371905/1891423 现在介绍通过编译安装MySQL搭建多实例 实验中所用到的软件包:http://down.51cto.com/data/2281098 环境介绍 编译安装mysql前需要解决依赖包问题 yum -y install ncurses-devel libaio-devel 安装 lrzsz 这个软件,和系统无关的一个软件.安装后可以通过xshell拖拽软件

ubuntu 安装mysql, 以及完全重新安装的方法

sudo apt-get install mysql-server 装完后 是无法远程访问的. 要先修改 sudo vim /etc/mysql/my.cnf 找到 bind-address = 127.0.0.1 注释掉.就ok了 如果之前装乱了... 可以这样彻底删除 sudo apt-get remove --purge mysql-server sudo apt-get remove mysql-server sudo apt-get remove mysql-common 然后...重

ubuntu安装mysql后不能远程访问的方法

ubuntu安装mysql后不能远程访问的方法1.mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 2.FLUSH RIVILEGES; 3.查看mysql库users表中是否存在如下记录,存在代表设置成功. 正常情况下应该是可以了,但是我的还是不行, 4.怀疑是网络问题,运行命令测试:telnet ip地址 端口返回:Could not connect

CentOS 6.5最小化编译安装mysql 5.5.35配置多实例

1.关闭防火墙 [[email protected] ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter          [  OK  ] iptables: Flushing firewall rules:                         [  OK  ] iptables: Unloading modules:                               [ 

cmake安装MySQL数据库实例

一.编译安装MySQL前的准备工作 首先检查是否有安装其他版本的编译器和数据库,先卸载干净. 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装 wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.

cmake安装mysql

安装mysql5.5.32: 1)安装mysql需要的依赖包 [[email protected] ~]# yum install ncurses-devellibaio-devel –y [[email protected] ~]# rpm -qa ncurses-devel libaio-devel libaio-devel-0.3.107-10.el6.x86_64 ncurses-devel-5.7-4.20090207.el6.x86_64 2)安装mysql需要的软件 cmake软件

MySQL单机多实例配置实战

本文主要介绍在CentOS6.9下快速安装和部署MySQL多实例 基本流程: 1.Mysql多实例介绍 2.安装MySQL多实例 3.创建MySQL多实例的数据文件目录以及配置文件 4.创建MySQL多实例的启动文件 5.配置文件权限和软链接 6.初始化MySQL多实例的数据库文件 7.启动MySQL多实例数据库 8.配置和管理MySQL多实例数据库 流程一:Mysql多实例介绍 简单的说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(如 : 3306/3307/3308)同时运

linux cmake安装mysql

原文地址:http://www.cppblog.com/issay789/archive/2013/01/05/196967.html 一.安装 m4 下载地址: http://files.w3pc.com/download/mysql/m4-1.4.16.tar.gz 二.安装 bison 下载地址: http://files.w3pc.com/download/mysql/bison-2.7.tar.gz 三.安装 cmake 下载地址: http://files.w3pc.com/down

MySQL多个实例的方法

MySQL运行多实例有2种方法,第一种是使用多个配置文件启动不同的进程来实现多实例;第二种是通过mysqld_multi使用单独的配置文件来实现多实例 环境准备: 操作系统:Red Hat Enterprise Linux Server release 6.5 (Santiago) MySQL版本:mysql-5.6.22-linux-glibc2.5-x86_64 要运行多实例,首先安装MySQL软件,安装方法参考之前的博文:MySQL安装,安装好MySQL软件之后,下面分别创建端口分别为33