1.安装MySQL需要的依赖的包和编译软件
 
(1)安装MySQL需要的依赖包
安装MySQL之前,最好先安装MySQL需要的依赖包,不然后面会出现报错,还得回来安装MySQL的依赖包。
  1. [root@Mysql-server tools]# yum install -y ncurses-devel libaio-devel
  2. [root@Mysql-server tools]# rpm -qa ncurses-devel libaio-devel
  3. ncurses-devel-5.7-4.20090207.el6.x86_64
  4. libaio-devel-0.3.107-10.el6.x86_64
 
(2)安装编译MySQL需要的软件
要安装cmake编译软件:
  1. [root@Mysql-server tools]# tar xf cmake-2.8.8.tar.gz
  2. [root@Mysql-server tools]# cd cmake-2.8.8
  3. [root@Mysql-server cmake-2.8.8]#./configure
  4. [root@mysql cmake-2.8.8]# gmake
  5. [root@mysql cmake-2.8.8]# gmake install
2.开始安装MySQL
2.1 创建用户mysql
  1. [root@mysql tools]# useradd mysql -s /sbin/nologin -M
  2. [root@mysql tools]# id mysql
    uid=501(mysql) gid=501(mysql) 组=501(mysql)
    [root@mysql tools]#
2.2 解压编译MySQL
  1. tar zxf mysql-5.5.32.tar.gz
    cd mysql-5.5.32
  2. cmake .-DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
  3. -DMYSQL_DATADIR=/application/mysql-5.5.32/data \
  4. -DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
  5. -DDEFAULT_CHARSET=utf8 \
  6. -DDEFAULT_COLLATION=utf8_general_ci \
  7. -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
  8. -DENABLED_LOCAL_INFILE=ON \
  9. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  10. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  11. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  12. -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
  13. -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
  14. -DWITH_FAST_MUTEXES=1 \
  15. -DWITH_ZLIB=bundled \
  16. -DENABLED_LOCAL_INFILE=1 \
  17. -DWITH_READLINE=1 \
  18. -DWITH_EMBEDDED_SERVER=1 \
  19. -DWITH_DEBUG=0
  20. #-- Build files have been written to: /home/oldboy/tools/mysql-5.5.32
  21. 提示,编译时可配置的选项很多,具体可参考结尾附录或官方文档:
  22. make
  23. #[100%] Built target my_safe_process
  24. make install
  25. ln -s /application/mysql-5.5.32//application/mysql
  26. 如果上述操作未出现错误,则MySQL5.5.32软件cmake方式的安装就算成功了。
编译过程中出现如下报错,解决方法为:
  1. [root@mysql mysql-5.5.32]# rm CMakeCache.txt ###删除这个文件,重新cmake
 
 
  1. [root@mysql mysql-5.5.32]# mkdir -p /data/{3306,3307}/data
  2. [root@mysql mysql-5.5.32]# tree /data/
  3. /data/
  4. ├──3306
  5. │??└── data ##实例3306的数据文件
  6. ├──3307
  7. │??└── data ##实例3307的数据文件
  8. └── test
2.3 接着创建配置文件,将data.zip文件上传到/(根)下,并且使用unzip命令解压
  1. [root@mysql /]# unzip data.zip ##上传到根下,加压会替换上面创建的/data目录
  2. Archive: data.zip
  3. inflating: data/3306/my.cnf
  4. inflating: data/3306/mysql
  5. inflating: data/3307/my.cnf
  6. inflating: data/3307/mysql
  7. [root@mysql /]# tree /data
  8. data/ data.zip
  9. [root@mysql /]# tree data
  10. data/ data.zip
  11. [root@mysql /]# tree data/
  12. data/
  13. ├──3306
  14. │??├── data
  15. │??├── my.cnf ##实例的配置文件
  16. │??└── mysql ##实例的启动文件
  17. ├──3307
  18. │??├── data
  19. │??├── my.cnf ##实例的配置文件
  20. │??└── mysql ##实例的启动文件
  21. └── test
/data/3306/my.cnf配置文件信息
  1. [root@mysql /]# cat /data/3306/my.cnf
  2. [client]
  3. port =3306
  4. socket =/data/3306/mysql.sock
  5. [mysql]
  6. no-auto-rehash
  7. [mysqld]
  8. user = mysql
  9. port =3306
  10. socket =/data/3306/mysql.sock
  11. basedir =/application/mysql
  12. datadir =/data/3306/data
  13. open_files_limit =1024
  14. back_log =600
  15. max_connections =800
  16. max_connect_errors =3000
  17. table_cache =614
  18. external-locking = FALSE
  19. max_allowed_packet =8M
  20. sort_buffer_size =1M
  21. join_buffer_size =1M
  22. thread_cache_size =100
  23. thread_concurrency =2
  24. query_cache_size =2M
  25. query_cache_limit =1M
  26. query_cache_min_res_unit =2k
  27. #default_table_type = InnoDB
  28. thread_stack =192K
  29. #transaction_isolation = READ-COMMITTED
  30. tmp_table_size =2M
  31. max_heap_table_size =2M
  32. long_query_time =1
  33. #log_long_format
  34. #log-error = /data/3306/error.log
  35. #log-slow-queries = /data/3306/slow.log
  36. pid-file =/data/3306/mysql.pid
  37. log-bin =/data/3306/mysql-bin
  38. relay-log =/data/3306/relay-bin
  39. relay-log-info-file =/data/3306/relay-log.info
  40. binlog_cache_size =1M
  41. max_binlog_cache_size =1M
  42. max_binlog_size =2M
  43. expire_logs_days =7
  44. key_buffer_size =16M
  45. read_buffer_size =1M
  46. read_rnd_buffer_size =1M
  47. bulk_insert_buffer_size =1M
  48. #myisam_sort_buffer_size = 1M
  49. #myisam_max_sort_file_size = 10G
  50. #myisam_max_extra_sort_file_size = 10G
  51. #myisam_repair_threads = 1
  52. #myisam_recover
  53. lower_case_table_names =1
  54. skip-name-resolve
  55. slave-skip-errors =1032,1062
  56. replicate-ignore-db=mysql
  57. server-id =1
  58. innodb_additional_mem_pool_size =4M
  59. innodb_buffer_pool_size =32M
  60. innodb_data_file_path = ibdata1:128M:autoextend
  61. innodb_file_io_threads =4
  62. innodb_thread_concurrency =8
  63. innodb_flush_log_at_trx_commit =2
  64. innodb_log_buffer_size =2M
  65. innodb_log_file_size =4M
  66. innodb_log_files_in_group =3
  67. innodb_max_dirty_pages_pct =90
  68. innodb_lock_wait_timeout =120
  69. innodb_file_per_table =0
  70. [mysqldump]
  71. quick
  72. max_allowed_packet =2M
  73. [mysqld_safe]
  74. log-error=/data/3306/mysql_oldboy3306.err
  75. pid-file=/data/3306/mysqld.pid
/data/3307/my.cnf配置文件参数
  1. [root@mysql /]# cat /data/3307/my.cnf
  2. [client]
  3. port =3307
  4. socket =/data/3307/mysql.sock
  5. [mysql]
  6. no-auto-rehash
  7. [mysqld]
  8. user = mysql
  9. port =3307
  10. socket =/data/3307/mysql.sock
  11. basedir =/application/mysql
  12. datadir =/data/3307/data
  13. open_files_limit =1024
  14. back_log =600
  15. max_connections =800
  16. max_connect_errors =3000
  17. table_cache =614
  18. external-locking = FALSE
  19. max_allowed_packet =8M
  20. sort_buffer_size =1M
  21. join_buffer_size =1M
  22. thread_cache_size =100
  23. thread_concurrency =2
  24. query_cache_size =2M
  25. query_cache_limit =1M
  26. query_cache_min_res_unit =2k
  27. #default_table_type = InnoDB
  28. thread_stack =192K
  29. #transaction_isolation = READ-COMMITTED
  30. tmp_table_size =2M
  31. max_heap_table_size =2M
  32. #long_query_time = 1
  33. #log_long_format
  34. #log-error = /data/3307/error.log
  35. #log-slow-queries = /data/3307/slow.log
  36. pid-file =/data/3307/mysql.pid
  37. #log-bin = /data/3307/mysql-bin
  38. relay-log =/data/3307/relay-bin
  39. relay-log-info-file =/data/3307/relay-log.info
  40. binlog_cache_size =1M
  41. max_binlog_cache_size =1M
  42. max_binlog_size =2M
  43. expire_logs_days =7
  44. key_buffer_size =16M
  45. read_buffer_size =1M
  46. read_rnd_buffer_size =1M
  47. bulk_insert_buffer_size =1M
  48. #myisam_sort_buffer_size = 1M
  49. #myisam_max_sort_file_size = 10G
  50. #myisam_max_extra_sort_file_size = 10G
  51. #myisam_repair_threads = 1
  52. #myisam_recover
  53. lower_case_table_names =1
  54. skip-name-resolve
  55. slave-skip-errors =1032,1062
  56. replicate-ignore-db=mysql
  57. server-id =3
  58. innodb_additional_mem_pool_size =4M
  59. innodb_buffer_pool_size =32M
  60. innodb_data_file_path = ibdata1:128M:autoextend
  61. innodb_file_io_threads =4
  62. innodb_thread_concurrency =8
  63. innodb_flush_log_at_trx_commit =2
  64. innodb_log_buffer_size =2M
  65. innodb_log_file_size =4M
  66. innodb_log_files_in_group =3
  67. innodb_max_dirty_pages_pct =90
  68. innodb_lock_wait_timeout =120
  69. innodb_file_per_table =0
  70. [mysqldump]
  71. quick
  72. max_allowed_packet =2M
  73. [mysqld_safe]
  74. log-error=/data/3307/mysql_oldboy3307.err
  75. pid-file=/data/3307/mysqld.pid
 
特别说明:
本文多实例启动文件的启动mysql服务实质命令:
mysqld_safe --defaults-file=/data /3306/my.cnf 2>&1 /dev/null &
mysqld_safe --defaults-file=/data /3307/my.cnf 2>&1 /dev/null &
 
本文多实例启动文件的停止mysql服务实质命令:
mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p123456 -S /data/3307/mysql.sock shutdown
 
2.4 修改数据文件/data 权限
  1. [root@mysql /]# chown -R mysql.mysql /data
  2. [root@mysql /]# find /data -type f -name "my.cnf"|xargs ls -l ##将my.cnf文件权限设置成644
  3. -rw-r--r--.1 mysql mysql 189910月292013/data/3306/my.cnf
  4. -rw-r--r--.1 mysql mysql 190110月292013/data/3307/my.cnf
  5. [root@mysql /]# find /data -type f -name "mysql"|xargs ls -l ##由于mysql脚本中保存了登录数据库的密码,需要将文件权限设置成700,只允许root,mysql访问
  6. -rw-r--r--.1 mysql mysql 13077月152013/data/3306/mysql
  7. -rw-r--r--.1 mysql mysql 13077月212013/data/3307/mysql
  8. [root@mysql /]# find /data -type f -name "mysql"|xargs chmod 700
  9. [root@mysql /]# find /data -type f -name "mysql"|xargs ls -l
  10. -rwx------.1 mysql mysql 13077月152013/data/3306/mysql
  11. -rwx------.1 mysql mysql 13077月212013/data/3307/mysql
2.5 配置MySQL命令全局使用路径
     如果不为MySQL的命令配置全局路径,就无法直接在命令行输入mysql,这样只能用全路径/application/msyq/bin/mysql 这样带着路径输出会比较麻烦
 
2.5.1 配置MySQL全局路径方法
1.确认mysql命令所在路径
  1. [root@mysql /]# ll /application/mysql/bin/mysql
  2. -rwxr-xr-x.1 root root 53453564月816:05/application/mysql/bin/mysql
2. 修改PATH路径
  1. [root@mysql /]# tail -1/etc/profile
  2. export PATH=/application/mysql/bin:$PATH ##添加如下行
  3. [root@mysql /]# source /etc/profile ##让其生效
3. 最后检查PATH
  1. [root@mysql /]# echo $PATH
  2. /application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2.6 初始化数据库
  1. cd /application/mysql/scripts/##注意和MySQL 5.1的路径不同,MySQL 5.1 不在mysql/bin下
  2. ./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data/--user=mysql
  3. ./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data/--user=mysql
注意:
当初始化的过程中出现两个OK时,表示初始化成功

3. 最后启动mysql
  1. [root@mysql scripts]#/data/3306/mysql start
  2. StartingMySQL...
  3. [root@mysql scripts]#/data/3307/mysql start
  4. StartingMySQL...
  5. 查看是否启动成功
  6. [root@mysql scripts]# netstat -lntup|grep mysql
  7. tcp 000.0.0.0:33060.0.0.0:* LISTEN 4614/mysqld
  8. tcp 000.0.0.0:33070.0.0.0:* LISTEN 5412/mysqld
4. 登录mysql
mysql -uroot -p123456 -S /data/3306/mysql.sock
5. 多实例修改mysql 密码
  1. [root@mysql scripts]# mysqladmin -uroot password 123456 -S /data/3306/mysql.sock
  2. [root@mysql scripts]# mysqladmin -uroot password 123456 -S /data/3307/mysql.sock
6. 修改配置文件中的mysql连接密码,如果不修改否则在停库的时候会报错
  1. [root@mysql scripts]# sed -i '13 s#oldboy#123456#g'/data/3306/mysql
  2. [root@mysql scripts]# sed -n '13p'/data/3306/mysql
  3. mysql_pwd="123456"
  4. [root@mysql scripts]# sed -i '13 s#oldboy#123456#g' /data/3307/mysql
    [root@mysql scripts]# sed -n '13p' /data/3307/mysql
    mysql_pwd="123456"
    [root@mysql scripts]#
7.停止mysql数据库
  1. [root@mysql scripts]#/data/3306/mysql stop
  2. StopingMySQL...
  3. [root@mysql scripts]#/data/3307/mysql stop
  4. StopingMySQL...
  5. [root@mysql scripts]#
 
新增一个多实例库3308,操作命令如下
 

附件列表

MySQL多实例安装的更多相关文章

  1. Windows下MySQL多实例安装/主从复制/重置密码

    Windows创建MySQL多实例 安装MYSQL和实例1 运行mysql-installer-community-5.7.16.0.msi 选择组件 MySQL Server 5.7.16 – X6 ...

  2. linux下mysql多实例安装

    1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的 ...

  3. mysql多实例安装与ssl认证

    mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...

  4. linux下mysql多实例安装(转)

    转自:http://www.cnblogs.com/xuchenliang/p/6843990.html   1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上 ...

  5. Mysql多实例安装+主从复制+读写分离 -学习笔记

    Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...

  6. Mysql多实例 安装以及配置

    MySQL多实例 1.什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的soc ...

  7. windows下mysql多实例安装

    在学习和开发过程中有时候会用到多个MySQL数据库,比如Master-Slave集群.分库分表,开发阶段在一台机器上安装多个MySQL实例就显得方便不少. 在 MySQL教程-基础篇-1.1-Wind ...

  8. mysql多实例安装详解

    首先说明一个场景:我的电脑是ubuntu系统,之前apt-get自动安装过mysql.这也是出现错误最多的原因之一. 安装过程,其中充斥着各种错误: 6.mkdir mysql 7.groupadd  ...

  9. centos下mysql多实例安装3306、3307实例(2014-10-15)

    背景说明       mysql的安装方法有多种,如二进制安装.源代码编译安装.yum安装等.yum安装仅仅能安装mysql 5.1 版本号:源代码安装编译的过程比較长.若没有对源代码进行改动且要求使 ...

  10. MySQL多实例安装教程

    目录 MySQL的多实例 实验准备: 准备阶段: 实验阶段 MySQL的多实例 实验准备: 1. 一个干净的centos7系统 2. 关闭防火墙和selinux 3. 之前已经二进制安装过的MySQL ...

随机推荐

  1. 牛顿插值法——用Python进行数值计算

    拉格朗日插值法的最大毛病就是每次引入一个新的插值节点,基函数都要发生变化,这在一些实际生产环境中是不合适的,有时候会不断的有新的测量数据加入插值节点集, 因此,通过寻找n个插值节点构造的的插值函数与n ...

  2. [翻译]AKKA笔记 - CHILD ACTORS与ACTORPATH -6

    原文:http://rerun.me/2014/10/21/akka-notes-child-actors-and-path/ Actor是完全的继承结构.你创建的任何Actor肯定都是一个其他Act ...

  3. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

  4. 在thinkPHP3.2.3框架下实现手机和PC端浏览器的切换

    查看thinkphp版本号方法 打开文件“根目录\ThinkPHP\ThinkPHP.php”下的文件ThinkPHP.php,在22--23行可以看到版本信息THINK_VERSION,如下图: 说 ...

  5. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  6. 【.net 深呼吸】使用二进制格式来压缩XML文档

    在相当多的情况下,咱们写入XML文件默认是使用文本格式来写入的,如果XML内容是通过网络传输,或者希望节省空间,特别是对于XML文档较大的情况,是得考虑尽可能地压缩XML文件的大小. XmlDicti ...

  7. SFTP 命令列表以备查询

    Available commands: ascii Set transfer mode to ASCII binary Set transfer mode to binary cd path Chan ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(4)-创建项目解决方案

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 设计中术语,概念这种东西过于模糊,我们必须学习累积才能认识这些概念模型. 我无法用文章来下详细解析此系统的深层概念,需要大 ...

  9. SQL Server SQL性能优化之--通过拆分SQL提高执行效率,以及性能高低背后的原因

    复杂SQL拆分优化 拆分SQL是性能优化一种非常有效的方法之一, 具体就是将复杂的SQL按照一定的逻辑逐步分解成简单的SQL,借助临时表,最后执行一个等价的逻辑,已达到高效执行的目的 一直想写一遍通过 ...

  10. ASP.NET Core 中文文档 第二章 指南(4.7)添加搜索

    原文:Adding Search 作者:Rick Anderson 翻译:魏美娟(初见) 校对:谢炀(Kiler) .孟帅洋(书缘).张仁建(第二年.夏) 在本节中,你可以为 Index 方法添加查询 ...