分享
 
 
 

使用实例管理器轻松管理多个MySQL实例

王朝mysql·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

一、MySQL数据库的实例管理器概述:

1、MySQL数据库的实例管理器(IM)是通过TCP/IP端口运行的后台程序,用来监视和管理MySQL数据库服务器实例。

2、假如IM挂了,则所有的实例都会挂掉;假如实例挂了,IM会尝试重新来启动它。

3、IM读取配置文件比如MY.CNF的[manager]段。

4、本文中的示例依据LINUX环境下试验。

二、配置说明:

1、配置文件如下:

[manager]

user=mysql

default-mysqld-path = /usr/local/mysql/bin/mysqld

socket=/tmp/manager.sock

pid-file=/tmp/manager.pid

password-file = /etc/mysqlmanager.passwd

monitoring-interval = 2

port = 1999

bind-address = 192.168.0.231

log = /usr/local/mysql/bin/mysqlmanager.log

run-as-service = true

[mysqld1]

...

[mysqld2]

...

这个有两个配置实例,具体就不说了。见我的安装多个实例的文章。

具体含义查看mysqlmanager --help

2、密码文件

IM将用户信息保存到密码文件中。密码文件的默认位置为/etc/mysqlmanager.passwd。

密码应类似于:

petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848

我的mysqlmanager.passwd内容

user_all:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

3、启动IM

[root@localhost tmp]# /usr/local/mysql/bin/mysqlmanager

WARNING: This program is deprecated and will be removed in 6.0.

[2483/3086632640] [08/04/24 14:24:50] [INFO] IM: started.

[2483/3086632640] [08/04/24 14:24:50] [INFO] Loading config file 'my.cnf'...

[2483/3086632640] [08/04/24 14:24:50] [INFO] Manager: initializing...

[2483/3086632640] [08/04/24 14:24:50] [INFO] Manager: detected threads model: POSIX threads.

[2483/3086632640] [08/04/24 14:24:50] [INFO] Loading the password database...

[2483/3086632640] [08/04/24 14:24:50] [INFO] Loaded user 'user_all'.

[2483/3086632640] [08/04/24 14:24:50] [INFO] The password database loaded successfully.

[2483/3086632640] [08/04/24 14:24:50] [INFO] Manager: pid file (/tmp/manager.pid) created.

[2483/3086632640] [08/04/24 14:24:50] [INFO] mysqld instance 'mysqld1' has been added successfully.

[2483/3086632640] [08/04/24 14:24:50] [INFO] mysqld instance 'mysqld2' has been added successfully.

[2483/3076139920] [08/04/24 14:24:50] [INFO] Guardian: started.

[2483/3076139920] [08/04/24 14:24:50] [INFO] Guardian: starting 'mysqld1'...

[2483/3076058000] [08/04/24 14:24:50] [INFO] Instance 'mysqld1': Monitor: started.

[2483/3076058000] [08/04/24 14:24:50] [INFO] Instance 'mysqld1': Monitor: starting mysqld...

[2483/3076139920] [08/04/24 14:24:50] [INFO] Guardian: starting 'mysqld2'...

[2483/3076058000] [08/04/24 14:24:50] [INFO] Instance 'mysqld1': Monitor: waiting for mysqld to stop...

[2483/3075894160] [08/04/24 14:24:50] [INFO] Instance 'mysqld2': Monitor: started.

[2483/3075894160] [08/04/24 14:24:50] [INFO] Instance 'mysqld2': Monitor: starting mysqld...

[2483/3075894160] [08/04/24 14:24:50] [INFO] Instance 'mysqld2': Monitor: waiting for mysqld to stop...

[2483/3086632640] [08/04/24 14:24:50] [INFO] Manager: started.

[2483/3075976080] [08/04/24 14:24:50] [INFO] Listener: started.

[2483/3075976080] [08/04/24 14:24:50] [INFO] Listener: accepting connections on ip socket (port: 1999)...

[2483/3075976080] [08/04/24 14:24:50] [INFO] Listener: accepting connections on unix socket '/tmp/manager.sock'...

...

InnoDB: than specified in the .cnf file 0 5242880 bytes!

080424 14:24:50 InnoDB: Started; log sequence number 0 46409

080424 14:24:50 [Note] Event Scheduler: Loaded 0 events

080424 14:24:50 [Note] /usr/local/mysql/bin/mysqld: ready for connections.

Version: '5.1.23a-maria-alpha-log' socket: '/tmp/mysql1.sock' port: 3306 MySQL Community Server [Maria] (GPL)

080424 14:24:50 [Warning] 'user' entry 'root@localhost.localdomain' ignored in --skip-name-resolve mode.

080424 14:24:50 [Warning] 'user' entry '@localhost.localdomain' ignored in --skip-name-resolve mode.

080424 14:24:50 [Note] Event Scheduler: Loaded 0 events

080424 14:24:50 [Note] /usr/local/mysql/bin/mysqld: ready for connections.

Version: '5.1.23a-maria-alpha-log' socket: '/tmp/mysql2.sock' port: 3309 MySQL Community Server [Maria] (GPL)

[2483/3076139920] [08/04/24 14:24:52] [INFO] Guardian: 'mysqld1' is running, set state to STARTED.

4、连接IM

[root@localhost ~]# mysql -uuser_all -p -S/tmp/manager.sock -P1999

三、用IM来管理MySQL数据库

1、显示实例的状态和版本信息

[root@localhost ~]# mysql -uuser_all -p -S/tmp/manager.sock -P1999

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 1.0-beta

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show instances;

+---------------+--------+

| instance_name | state |

+---------------+--------+

| mysqld1 | online |

| mysqld2 | online |

+---------------+--------+

2 rows in set (0.00 sec)

关闭实例1

mysql> stop instance mysqld1;

Query OK, 0 rows affected (0.30 sec)

mysql> show instances;

+---------------+---------+

| instance_name | state |

+---------------+---------+

| mysqld1 | offline |

| mysqld2 | online |

+---------------+---------+

2 rows in set (0.00 sec)

开启实例1

mysql> start instance mysqld1;

Query OK, 0 rows affected (0.00 sec)

Instance started

mysql> show instances;

+---------------+--------+

| instance_name | state |

+---------------+--------+

| mysqld1 | online |

| mysqld2 | online |

+---------------+--------+

2 rows in set (0.00 sec)

查看实例的版本信息

mysql> show instance status mysqld2;

+---------------+--------+----------------+

| instance_name | state | version_number | version | mysqld_compatible |

+---------------+--------+----------------+

| mysqld2 | online | 5.1.23 | 5.1.23a-maria-alpha for redhat-linux-gnu on i686 (MySQL Community Server [Maria] (GPL))

| no |

+---------------+--------+----------------+

1 row in set (0.00 sec)

也可以显示实例的选项信息

mysql> show instance options mysqld1;

+-----------------------+-----------------------------------+

| option_name | value |

+-----------------------+-----------------------------------+

| instance_name | mysqld1 |

| basedir | /usr/local/mysql |

| datadir | /usr/local/mysql/data |

| user | mysql |

| default-character-set | utf8 |

| port | 3306 |

| socket | /tmp/mysql1.sock |

| skip-locking | |

| skip-name-resolve | |

| key_buffer | 126M |

| max_allowed_packet | 2M |

| table_cache | 512 |

| sort_buffer_size | 2M |

| read_buffer_size | 2M |

| read_rnd_buffer_size | 4M |

| net_buffer_length | 2K |

| thread_stack | 64K |

| log-bin | mysql.log |

| expire_logs_days | 5 |

| wait_timeout | 20 |

| pid-file | mysqld1-localhost.localdomain.pid |

+-----------------------+-----------------------------------+

21 rows in set (0.00 sec)

也可以查询实例的日志相关信,不再赘述。

我们可以发现,管理实例其实非常方便。

2、管理用户

(1)、添加管理用户

[root@localhost ~]# /usr/local/mysql/bin/mysqlmanager --add-user

WARNING: This program is deprecated and will be removed in 6.0.

[3046/3086816960] [08/04/24 14:33:13] [INFO] IM: started.

[3046/3086816960] [08/04/24 14:33:13] [INFO] Loading config file 'my.cnf'...

Enter user name: shit_all

[3046/3086816960] [08/04/24 14:33:18] [INFO] Loading the password database...

[3046/3086816960] [08/04/24 14:33:18] [INFO] Loaded user 'user_all'.

[3046/3086816960] [08/04/24 14:33:18] [INFO] The password database loaded successfully.

Enter password:

Re-type password:

[3046/3086816960] [08/04/24 14:33:23] [INFO] IM: finished.

[root@localhost ~]# cat /etc/mysqlmanager.passwd

user_all:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

shit_all:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

注意:必须重新启动IM才能生效。

[root@localhost ~]# mysql -ushit_all -p -S/tmp/manager.sock -P1999

Enter password:

ERROR 1045 (28000): Access denied. Bad username/password pair

(2)、修改用户密码

[root@localhost ~]# /usr/local/mysql/bin/mysqlmanager --edit-user

WARNING: This program is deprecated and will be removed in 6.0.

[3214/3086845632] [08/04/24 14:35:15] [INFO] IM: started.

[3214/3086845632] [08/04/24 14:35:15] [INFO] Loading config file 'my.cnf'...

Enter user name: shit_all

[3214/3086845632] [08/04/24 14:35:19] [INFO] Loading the password database...

[3214/3086845632] [08/04/24 14:35:19] [INFO] Loaded user 'user_all'.

[3214/3086845632] [08/04/24 14:35:19] [INFO] Loaded user 'shit_all'.

[3214/3086845632] [08/04/24 14:35:19] [INFO] The password database loaded successfully.

Enter password:

Re-type password:

[3214/3086845632] [08/04/24 14:35:24] [INFO] IM: finished.

(3)、删除用户

[root@localhost ~]# /usr/local/mysql/bin/mysqlmanager --drop-user

WARNING: This program is deprecated and will be removed in 6.0.

[3338/3086501568] [08/04/24 14:36:42] [INFO] IM: started.

[3338/3086501568] [08/04/24 14:36:42] [INFO] Loading config file 'my.cnf'...

Enter user name: shit_all

[3338/3086501568] [08/04/24 14:36:45] [INFO] Loading the password database...

[3338/3086501568] [08/04/24 14:36:45] [INFO] Loaded user 'user_all'.

[3338/3086501568] [08/04/24 14:36:45] [INFO] Loaded user 'shit_all'.

[3338/3086501568] [08/04/24 14:36:45] [INFO] The password database loaded successfully.

[3338/3086501568] [08/04/24 14:36:45] [INFO] IM: finished.

(4)、列出当前管理用户

[root@localhost ~]# /usr/local/mysql/bin/mysqlmanager --list-user

WARNING: This program is deprecated and will be removed in 6.0.

[3366/3086087872] [08/04/24 14:37:07] [INFO] IM: started.

[3366/3086087872] [08/04/24 14:37:07] [INFO] Loading config file 'my.cnf'...

[3366/3086087872] [08/04/24 14:37:07] [INFO] Loading the password database...

[3366/3086087872] [08/04/24 14:37:07] [INFO] Loaded user 'user_all'.

[3366/3086087872] [08/04/24 14:37:07] [INFO] The password database loaded successfully.

user_all

[3366/3086087872] [08/04/24 14:37:07] [INFO] IM: finished.

[root@localhost ~]#

四、远程管理

C:\Documents and Settings\Administrator>mysql -uuser_all -p -P1999 -h192.168.0.2

31

Enter password: ******

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 1.0-beta

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show instances;

+---------------+--------+

| instance_name | state |

+---------------+--------+

| mysqld1 | online |

| mysqld2 | online |

+---------------+--------+

2 rows in set (0.00 sec)

mysql> quit

总结:

MySQL数据库的实例管理器对于多个MySQL实例的管理是很方便的,但它本身存在两个不足:

1、不能直接进行数据库的SQL管理命令。

2、一定要确保IM进程不会突然挂掉。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有