当前位置: 首页 > news >正文

mac mysql 多实例_Mac上mysql多端口实例配置并设置开机自动启动

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

10 请原谅我使用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

欢迎大家阅读《Mac上mysql多端口实例配置并设置开机自动启动》,跪求各位点评,by 搞代码

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"?> DescriptionMysqlMultiOrderPreferenceLateProvidesLaunch mysql at startup

至此,使用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= # - 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

问题解决

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

相关文章:

  • mysql 主要有哪些函数_mysql中有哪些函数
  • mysql索引失效解决6_简单介绍MySQL索引失效的几种情况
  • java 获取方法的参数_Java 8中如何获取参数名称的方法示例
  • java gui程序运行_13.JAVA之GUI编程将程序打包jar
  • java输入输出学生成绩_java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。...
  • java $ 解析api_Java版抖音解析接口
  • java 10的 6次方_【Java】 剑指offer(15) 数值的整数次方
  • java 方法 返回值 int_关于java字节流类的read()方法返回值为int的思考
  • java 迭代器复制_java设计模式之迭代器模式
  • java取文件类型_java如何通过文件描述符获取文件类型
  • java pdb_当12C PDB遇上JDBC
  • java复选框添加选中事件_Java的JTable中添加JCheckBox,点击事件处理问题,求高手指点迷津...
  • java thread类是抽象类_抽象类详解
  • 摘要认证 java_摘要认证及实现HTTP digest authentication
  • ssdp java_SSDP 简单服务发现协议
  • 《剑指offer》分解让复杂问题更简单
  • CentOS7简单部署NFS
  • css系列之关于字体的事
  • Kibana配置logstash,报表一体化
  • python3 使用 asyncio 代替线程
  • React Transition Group -- Transition 组件
  • React的组件模式
  • 产品三维模型在线预览
  • 记一次用 NodeJs 实现模拟登录的思路
  • 开发基于以太坊智能合约的DApp
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • Nginx实现动静分离
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (十八)三元表达式和列表解析
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .form文件_SSM框架文件上传篇
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 中viewstate的原理和使用
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .Net中的集合
  • .so文件(linux系统)
  • /etc/fstab 只读无法修改的解决办法
  • @PreAuthorize注解
  • @软考考生,这份软考高分攻略你须知道
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [<MySQL优化总结>]
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [Android]常见的数据传递方式
  • [Angular 基础] - 数据绑定(databinding)
  • [autojs]autojs开关按钮的简单使用
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [c#基础]DataTable的Select方法
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [go 反射] 进阶