好久没有写文章了,今天来看看MYSQL的实例管理器(MYSQLMANAGER)。
一、简单介绍:1、MySQL实例管理器(IM)是通过TCP/IP端口运行的后台程序,用来监视和管理MySQL数据库服务器实例。(如果你之前用过MYSQLD_MULTI就很清楚了。)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)
关闭实例1mysql> 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)
开启实例1mysql> 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
Bye
总结:MYSQL的实例管理器对于多个MYSQL实例的管理还是很方便的。不过有两个缺点1、不能直接进行数据库的SQL管理命令。2、一定要保证IM进程不挂掉。
分享到:
相关推荐
"Library-Manager-master"是一个基础的图书馆管理系统实例,它展示了PHP和MYSQL结合在Web应用中的强大能力。通过学习和实践这个项目,开发者可以深入了解Web开发的基本流程,为今后开发更复杂的系统打下坚实基础。...
- 解释了如何使用mysqlmanager管理MySQL实例。 - **5.2.3 MySQL实例的选择** - 提供了选择要管理的MySQL实例的选项。 - **5.2.4 MySQL实例的日志** - 描述了如何查看MySQL实例的日志。 - **5.2.5 MySQL实例的状态...
jbpm的事务管理是通过JOTM(Java Open Transaction Manager)实现的,因此需要配置JOTM支持。将carol.properties、jta.jar、commons-logging.jar、carol.jar、connector-1_5.jar、jotm.jar和jotm_jrmp_st等文件添加...
除了通过标准的XA接口实现分布式事务外,MySQL还提供了内部的XA支持,这意味着开发者可以直接在MySQL服务器内部使用XA功能,而无需依赖外部的事务管理器。 #### 九、总结 本文详细介绍了MySQL如何通过XA协议实现...
《MySQL高可用解决方案MHA(Manager for MySQL)详解——基于mha4mysql-node-0.57.tar.gz的实践》 在MySQL数据库管理中,确保数据的高可用性是至关重要的。MySQL High Availability (MHA) 是一个开源工具集,用于...
总结来说,“通讯录(JSP+MySql+Html+JavaScript)”项目是一个综合性的Web应用实例,它将前端界面设计、后端逻辑处理和数据存储紧密结合起来,展示了Web开发的基本架构和流程。通过学习和实践这样的项目,开发者...
MySQL是全球最受欢迎的开源数据库系统之一,但在高可用性方面,单个实例的故障可能导致服务中断。为了应对这一挑战,MySQL社区开发了MHA(Master High Availability),一个用于管理MySQL主从复制的工具,旨在提高...
总结来说,这个"spring连接数据库实例"主要涵盖了Spring框架中`DataSource`的配置、`JdbcTemplate`的使用以及事务管理的实现。通过这些知识点,我们可以高效地在Spring应用中实现与数据库的交互,提高开发效率。在...
总结来说,"canal 1.6_manager.sql"是Canal 1.6版本的数据库管理脚本,它是Canal Manager服务正常运行的基础,用于设置和管理Canal实例的配置信息。在实际使用中,这个脚本将帮助我们构建一个有效的数据同步和管理...
本文将详细解析在MySQL 5.0.51a版本中遇到中文乱码问题,以及如何通过EMS SQL Manager 2005这款强大的数据库管理工具来解决这个问题。 首先,我们要理解MySQL中的字符集设置。MySQL支持多种字符集,如UTF-8、GBK等...
- **MySQL Router**: 作为负载均衡器和故障切换代理。 ##### 2.2 硬件环境 - 至少三台服务器,推荐配置为高可用集群。 - 确保网络连通性良好,减少延迟。 ##### 2.3 集群规划 - 搭建一个包含三个节点的InnoDB ...
首先,MySQL 是广泛使用的开源关系型数据库管理系统,为了监控其性能和状态,我们需要 `mysql_exporter`,这是一个由 Prometheus 社区维护的导出器,它可以将 MySQL 的内部指标转换为 Prometheus 可读的格式。...
总结,通过Docker Compose部署MySQL MHA集群,我们能实现高效、灵活且易于管理的数据库高可用性解决方案。这种方式结合了Docker的轻量级虚拟化和MHA的高可用特性,为业务提供了强大的数据库支持,降低了因硬件故障或...
总结,通过Servlet与MySQL的结合,我们可以构建一个功能完善的Web人员管理系统,处理用户的请求,与数据库进行交互,实现人员信息的CRUD操作。同时,理解并掌握Servlet的生命周期、HTTP请求处理以及JDBC数据库操作是...
总结来说,Asp.NET三层架构实例提供了一个实践的平台,让你了解和掌握如何在Asp.NET中构建一个分层的应用程序。通过表现层、业务逻辑层和数据访问层的分工合作,你可以构建出高效、可扩展的Web解决方案。同时,查看...
在IT领域,数据库管理系统(DBMS)是至关重要...以上对比总结了Oracle和MySQL在基本命令层面的主要区别,对于日常数据库管理与开发工作具有重要参考价值。理解并熟练掌握这些命令,有助于提高数据库操作的效率与准确性。
本实例使用的是JDK 1.5、MySQL 5.0 和 JBPM 3.2.3版本。在开始之前,需要确保已经安装并配置好以上环境。 #### 三、数据库初始化 为了存储用户信息和业务数据,需要创建一个名为“jbpm”的数据库,并初始化必要的表...
RPM(Red Hat Package Manager)是一种流行的Linux包管理系统,它提供了一种简便的方法来安装、卸载和升级软件包。对于初学者来说,这是一种非常友好的安装方式。 **2. 安装步骤** - **环境准备**:确保Linux系统...
RPM(Red Hat Package Manager)是一种软件包管理器,它简化了在Linux系统上安装、配置和管理软件的过程。 MySQL 5.7是其历史上的一个关键版本,引入了许多增强功能和优化,包括: 1. **性能提升**:MySQL 5.7通过...