`
贝壳水母
  • 浏览: 147962 次
  • 性别: Icon_minigender_1
  • 来自: 广州中低收入人群
社区版块
存档分类
最新评论

Mac下mysql多端口实例配置并设置开机自动启动

阅读更多
请原谅我使用java代码的风格来表示很多的终端命令,编辑器自带的样式太少了⋯⋯



先是给mysql配置~
(文中"/Users/XXX"代表当前用户主目录,我是在自己主目录下建了一个 Dev 目录,各种开发工具都放在里面,下文中的路径请根据自己实际目录作调整)

1、这里使用官网的tar.gz包,然后解压到 /Users/XXX/Dev/mysql 目录下

2、在 /Users/XXX/Dev/mysql/data 下新建目录 data1 和 data2

3、初始化数据库,在 terminal 执行如下shell :
cd /Users/XXX/Dev/mysql
./script/mysql_install_db --datadir=./data/data1
./script/mysql_install_db --datadir=./data/data2

4、mac下mysql默认是不需要 my.cnf 的,所以需要在 /Users/XXX/Dev/mysql 下新建 my.cnf 内容如下:
[mysqld_multi]
mysqld = /Users/XXX/Dev/mysql/bin/mysqld_safe
mysqladmin = /Users/XXX/Dev/mysql/bin/mysqladmin
user = root
#password = root

[mysqld1]
port      = 3307
socket    = /tmp/mysql.sock1
pid-file=/Users/XXX/Dev/mysql/data/data1/db-app1.pid
log=/Users/XXX/Dev/mysql/data/data1/db-app.log
datadir = /Users/XXX/Dev/mysql/data/data1
basedir = /Users/XXX/Dev/mysql
user = root

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file = /Users/XXX/Dev/mysql/data/data2/db-app2.pid
log=/Users/XXX/Dev/mysql/data/data2/db-app.log
datadir = /Users/XXX/Dev/mysql/data/data2
basedir = /Users/XXX/Dev/mysql
user = root

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


5、手动启动/关闭实例的命令(这里做测试用,后期改为自动启动将命令改为脚本执行)

启动:
/Users/XXX/Dev/mysql/bin/mysqld_multi --defaults-file=/Users/XXX/Dev/mysql/my.cnf start 1-2 

注意:有些文章讲的是 –config-file ,但在5.5的版本里,已经没有该选项了。
起动时,会报找不到my_print_defaults。需要在PATH中添加bin目录。

关闭:
/Users/XXX/Dev/mysql/bin/mysqld_multi --defaults-file=/Users/XXX/Dev/mysql/my.cnf stop 1-2 

或者
/Users/XXX/Dev/mysql/bin/mysqladmin -uroot -h 127.0.0.1 -P 3306 shutdown

其实mysqld_multi就是通过mysqladmin来实现关闭实例的。

############## 环境变量设置方法1 #################
打开shell后, 默认在$HOME目录下
键入: vi .bash_profile 回车, 编辑.bash_profile文件
按i进入插入文字编辑模式
找到设定PATH环境变量的一行,将你要添加的完整路径(如:/Users/XXX/Dev/mysql/bin)加入其中。如果没有找到设定PATH变量的行, 你可以自己添加一行:

export PATH=${PATH}:/Users/XXX/Dev/mysql/bin
############ 环境变量设置方法2(推荐) ##############
在 /etc/paths.d 建立一个文件专门表示mysql的path
1)浏览到 /etc/paths.d :
cd /etc/paths.d
2)创建文件:
sudo vi mysql
3)编辑模式下输入:
/Users/XXX/Dev/mysql/bin
4)可以在terminal下输入以下命令验证是否生效:
echo $PATH

6、修改root密码
mysqladmin -u root -h 127.0.0.1 -P 3307 password [yourpassword]
mysqladmin -u root -h 127.0.0.1 -P 3308 password [yourpassword]



20120229 补充:
使用mysqldump时需指定sock,比如备份3308端口的数据库时,须添加“ -S /tmp/mysql.sock2”

=================到这里mysql配置完毕,开始设置开机自动启动=====================

主要做法是将脚本加入到StartupItems

1.首先,要放到 /Library/StartupItems 下的自定义启动项必须是一个目录,然后再把脚本放到目录下,而且脚本与目录必须同名,以启动项命名为 MysqlMulti 为例
terminal下执行:
cd /Library/StartupItems
sudo mkdir MysqlMulti

2.创建启动脚本
创建脚本文件:
sudo vi /Library/StartupItems/MysqlMulti/MysqlMulti 

编辑模式下输入以下内容:
#!/bin/sh

# Source common setup, including hostconfig.
#
. /etc/rc.common

StartService( )
{
	ConsoleMessage "Starting MySQL"
	/Users/XXX/Dev/mysql/bin/mysqld_multi --defaults-file=/Users/XXX/Dev/mysql/my.cnf start 1-2
}

StopService( )
{
	ConsoleMessage "Stopping MySQL"
	/Users/XXX/Dev/mysql/bin/mysqld_multi --defaults-file=/Users/XXX/Dev/mysql/my.cnf stop 1-2
}

RestartService( )
{
	ConsoleMessage "Restarting MySQL"
	StopService
	StartService
}

RunService "$1"


3.启动脚本描述、参数
创建描述文件:
sudo vi /Library/StartupItems/MysqlMulti/StartupParameters.plist 

编辑模式下输入:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
    <dict>
        <key>Description</key>
        <string>MysqlMulti</string>
        <key>OrderPreference</key>
        <string>Late</string>
        <key>Provides</key>
        <array>
                <string>Launch mysql at startup</string>
        </array>
    </dict>
</plist>


至此,使用ls命令你将看到:
$ls /Library/StartupItems/MysqlMulti/
MysqlMulti               StartupParameters.plist


4.修改权限
sudo chown -R root:wheel /Library/StartupItems/MysqlMulti
sudo chmod -R 755 /Library/StartupItems/MysqlMulti

5.
当设置完成后,可以在终端上用SystemStarter 来调试配置的信息
命令为:SystemStarter -n -D
根据提示的信息可以查看配置的问题。

6.启动时可能提示:
WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.

查看 /Users/XXX/Dev/mysql/support-files/mysql.server 发现以下注释:
# If you install MySQL on some other places than /usr/local/mysql, then you
# have to do one of the following things for this script to work:
#|
# - Run this script from within the MySQL installation directory
# - Create a /etc/my.cnf file with the following information:
#   [mysqld]|
#   basedir=<path-to-mysql-installation-directory>
# - Add the above to any other configuration file (for example ~/.my.ini)
#   and copy my_print_defaults to /usr/bin
# - Add the path to the mysql-installation-directory to the basedir variable
#   below.
#
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.

原来 my_print_defaults 需要拷贝到 /usr/bin ,干脆使用更方便的软连接:
sudo ln -s ~/Dev/mysql/bin/my_print_defaults /usr/bin/my_print_defaults

问题解决
0
1
分享到:
评论
2 楼 贝壳水母 2015-06-04  
锋之弥漫 写道
楼主启动了多端口服务了么?我怎么按楼主配置后还是只能启动一个端口的服务

不好意思,有段时间没上博客了没留意到你的留言,这些配置在当时是有效的,现在已经很久没使用了……建议看看新的文档是否命令或者配置上有变动
1 楼 锋之弥漫 2015-03-28  
楼主启动了多端口服务了么?我怎么按楼主配置后还是只能启动一个端口的服务

相关推荐

    linux中mysql开机自动启动3种方法.docx

    这三个命令分别将 MySQL 服务脚本复制到 `/etc/init.d/` 目录下,添加 MySQL 服务到系统启动项中,并将其设置为在系统启动时自动启动。 方法二:使用 mysqldauto 启动脚本 第二种方法是使用一个名为 mysqldauto 的...

    mysql多实例详细配置

    在IT领域,尤其是数据库管理中,**MySQL多实例配置**是一项高级而实用的技术,它允许在同一台服务器上运行多个独立的MySQL数据库实例,从而提高资源利用效率并满足不同的业务需求。以下是对这一技术的深入解析。 ##...

    mysql5.7多实例部署

    5. 创建多实例过程:创建目录并授权→安装 MySQL→配置 MySQL 四、MySQL 5.7 多实例部署的注意事项 * 服务器操作系统:CentOS 6.5_x86_64 * MySQL 版本:mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz * 安装目录...

    银河麒麟V10 SP1 2403离线安装mysql8并设置开机自启

    银河麒麟V10 SP1 2403离线安装mysql8并设置开机自启,已亲测

    MySQL实现多实例方式运行揭秘

    在整个多实例的配置过程中,需要注意的是每个MySQL实例的端口、socket、PID文件、数据目录等均需设置得互不冲突,并且每个实例都应独立配置日志文件,以便于问题排查和性能监控。 在配置和管理MySQL多实例时,DBA还...

    mysql8的配置文件,包含端口 缓存配置

    mysql8的安装配置文件 包含端口 缓存 用户名密码的配置

    CentOS 7.6+mysql5.7 设置mysql开机自启动。.pdf

    以下是关于如何在CentOS 7.6上配置MySQL 5.7以实现开机自启动的详细步骤: 1. **开启MySQL服务**: 在root权限下,首先你需要启动MySQL服务。你可以通过以下命令来启动MySQL 5.7服务: ```bash systemctl ...

    linux运维学习笔记:MySQL多实例配置实战.pdf

    MySQL多实例配置,顾名思义,是指在单台服务器上运行多个MySQL实例。每个实例能够监听不同的端口,拥有独立的配置文件、数据文件和启动程序,以此实现多个独立的数据库服务。这在一台服务器上提供多种服务时非常有用...

    JIRA+MYSQL配置

    7. 如果希望JIRA服务在MYSQL服务启动之后启动,并在MYSQL服务停止前先停止JIRA服务,可以在Windows操作系统的注册表中设置服务依赖。在注册表中找到JIRA服务对应的条目,并添加一个DependOnService键值,填入MYSQL...

    Mysql_多实例安装配置方法一

    在本文中,我们将详细介绍在Ubuntu 11.1环境下,使用二进制包MySQL-5.5.19安装配置多实例的过程。 首先,你需要从官方网站www.mysql.com下载MySQL的二进制安装包,例如mysql-5.5.19-linux2.6-x86_64.tar.gz。然后,...

    mysql8.0.11多实例安装

    ### MySQL 8.0.11 多实例安装详解 #### 一、概述 随着业务需求的增长和技术架构的复杂化,数据库系统面临着更多的挑战。为了提高数据库系统的可用性、扩展性和容错能力,多实例部署成为了许多企业的首选方案。本文...

    生产环境MySQL 5.5.x单机多实例配置实践

    ### 生产环境MySQL 5.5.x单机多实例配置实践 #### 背景需求 在企业级应用中,为了提高资源利用率和方便管理,经常会在同一台服务器上部署多个MySQL实例。本文档旨在详细介绍如何在一个全新的服务器上通过源码编译...

    mysql多实例部署

    ### MySQL多实例部署详解 #### 一、背景与概述 在现代企业的生产环境中,为了提高数据库服务的可用性、灵活性及资源利用率,通常会采用MySQL多实例部署的方式。这种方式不仅能够满足不同业务线的需求隔离,还能...

    MySQL 查看并修改默认端口号

    这些文件包含了MySQL服务器的启动参数和配置设置,包括端口号信息。 **查看MySQL的当前端口号** 1. **通过命令行工具**: 在命令行中,你可以使用`netstat`命令来查看正在监听的网络端口。例如,在Windows上,...

    mysql5.7更改端口号

    - **服务无法启动**:检查my.ini文件中是否有语法错误或其他配置冲突,并确保没有其他服务正在使用3307端口。 - **数据丢失**:如果更改端口后出现数据丢失的情况,请检查日志文件以了解具体原因,并尝试恢复之前的...

    mysql多实例多配置文件安装.docx

    MySQL多实例多配置文件安装是数据库管理中的一个重要概念,它允许在同一台服务器上运行多个独立的MySQL服务,每个服务对应不同的端口和配置文件。这种安装方式常用于满足不同业务需求,例如隔离不同应用程序的数据...

    Ubuntu下MySQL安装配置以及简单应用实例

    Ubuntu下MySQL安装及配置文档,自己安装MySQL5.6.17过程整理的 ...二.MySQL开机自启动设置 4 三.MySQL常用操作 5 四.编码配置 8 五.更改mysql的数据库目录 10 六.忘记登录密码 11 七.一些错误记录 12

    mysql多实例.docx

    #### 一、MySQL多实例配置步骤 在一台服务器上部署多个MySQL实例能够提高资源利用率,并且方便进行隔离管理和维护。以下将详细介绍如何在同一台虚拟机上配置MySQL数据库多实例。 ##### 1. 建立目录结构 为了清晰...

Global site tag (gtag.js) - Google Analytics