• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • NDB群集的快速测试设置

    为了使您熟悉基础知识,我们将介绍功能正常的NDB群集的最简单配置。之后,您应该能够根据本章其他相关部分提供的信息来设计所需的设置。

    首先,您需要/var/lib/mysql-cluster通过以系统root用户身份执行以下命令来创建配置目录(例如):

    shell>mkdir /var/lib/mysql-cluster
    

    在此目录中,创建一个名为的文件config.ini,其中包含以下信息。用适当的值替换您的系统HostNameDataDir根据需要替换它。

    # file "config.ini" - showing minimal setup consisting of 1 data node,
    # 1 management server, and 3 MySQL servers.
    # The empty default sections are not required, and are shown only for
    # the sake of completeness.
    # Data nodes must provide a hostname but MySQL Servers are not required
    # to do so.
    # If you don't know the hostname for your machine, use localhost.
    # The DataDir parameter also has a default value, but it is recommended to
    # set it explicitly.
    # Note: [db], [api], and [mgm] are aliases for [ndbd], [mysqld], and [ndb_mgmd],
    # respectively. [db] is deprecated and should not be used in new installations.
    
    [ndbd default]
    NoOfReplicas= 1
    
    [mysqld  default]
    [ndb_mgmd default]
    [tcp default]
    
    [ndb_mgmd]
    HostName= myhost.example.com
    
    [ndbd]
    HostName= myhost.example.com
    DataDir= /var/lib/mysql-cluster
    
    [mysqld]
    [mysqld]
    [mysqld]
    

    现在,您可以启动ndb_mgmd管理服务器。默认情况下,它尝试读取config.ini其当前工作目录中的文件,因此将位置更改为文件所在的目录,然后调用ndb_mgmd

    shell>cd /var/lib/mysql-cluster
    shell>ndb_mgmd
    

    然后通过运行ndbd启动单个数据节点:

    shell>ndbd
    

    有关启动ndbd时可以使用的命令行选项,请参见“ NDB群集程序的公用选项-NDB群集程序的公用选项”。

    默认情况下,ndbdlocalhost在端口1186上查找管理服务器。

    注意

    如果从二进制压缩包安装了MySQL,则需要明确指定ndb_mgmdndbd服务器的路径。(通常,这些内容可以在中找到/usr/local/mysql/bin。)

    最后,将位置更改为MySQL数据目录(通常为/var/lib/mysql/usr/local/mysql/data),并确保my.cnf文件包含启用NDB存储引擎所需的选项:

    [mysqld]
    ndbcluster
    

    现在,您可以照常启动MySQL服务器:

    shell>mysqld_safe --user=mysql &
    

    请稍等片刻,以确保MySQL服务器正常运行。如果您看到该通知mysql ended,请检查服务器.err文件以找出问题所在。

    如果到目前为止一切顺利,您现在就可以开始使用集群了。连接到服务器并验证NDBCLUSTER是否启用了存储引擎:

    shell> mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1 to server version: 8.0.21
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> SHOW ENGINES\G
    ...
    *************************** 12. row***************************
    Engine: NDBCLUSTER
    Support: YES
    Comment: Clustered, fault-tolerant, memory-based tables
    *************************** 13. row***************************
    Engine: NDB
    Support: YES
    Comment: Alias for NDBCLUSTER
    ...
    

    前面示例输出中显示的行号可能与系统上显示的行号不同,这取决于服务器的配置方式。

    尝试创建一个NDBCLUSTER表:

    shell> mysql
    mysql> USE test;
    Database changed
    
    mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
    Query OK, 0 rows affected (0.09 sec)
    
    mysql> SHOW CREATE TABLE ctest \G
    *************************** 1. row***************************
           Table: ctest
    Create Table: CREATE TABLE `ctest` (
      `i` int(11) default NULL
    ) ENGINE=ndbcluster DEFAULT CHARSET=latin1
    1 row in set (0.00 sec)
    

    要检查您的节点设置是否正确,请启动管理客户端:

    shell>ndb_mgm
    

    在管理客户端中使用SHOW命令获取有关群集状态的报告:

    ndb_mgm> SHOW
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     1 node(s)
    id=2    @127.0.0.1  (Version: 8.0.20-ndb-8.0.20, Nodegroup: 0, *)
    
    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @127.0.0.1  (Version: 8.0.20-ndb-8.0.20)
    
    [mysqld(API)]   3 node(s)
    id=3    @127.0.0.1  (Version: 8.0.20-ndb-8.0.20)
    id=4 (not connected, accepting connect from any host)
    id=5 (not connected, accepting connect from any host)
    

    至此,您已经成功设置了一个正常工作的NDB集群。现在,您可以使用使用ENGINE=NDBCLUSTER或其别名创建的任何表将数据存储在集群中ENGINE=NDB