linux下mysql部署

news/2025/4/22 2:44:32

mysql

1、拓扑结构

mysql集群有如下三层:

  • 应用程序层:负责与mysql服务器通信的各种应用程序。
  • Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。
  • NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。
  • Management层:负责管理SQL与NDB节点

拓扑结构图如下所示:


Management:192.168.0.10
NDB节点:IP地址:192.168.0.20
NDB节点:IP地址:192.168.0.30
SQL节点:IP地址:192.168.0.20
SQL节点:IP地址:192.168.0.30

 

 

2、多机部署

2-1、初始化系统

每个节点都操作

systemctl disable firewalld

vim  /etc/selinux/config

SELINUX=disabled

2-2、依赖包安装

yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel –y
注:此处cmake是mysql 5.5之后版本所必需的,5.5之后的版本将cmake取代configure;

2-3、mysql管理节点

vim .../mysql-cluster/config.ini

[ndbd default]

# Options affecting ndbd processes on all data nodes:

NoOfReplicas=2    # Number of replicas

DataMemory=80M    # How much memory to allocate for data storage

IndexMemory=18M   # How much memory to allocate for index storage

 

#ServerPort=2202   # This the default value; however, you can use any

 

[ndb_mgmd]

# Management process options:

NodeId=1

HostName=192.168.1.150           # Hostname or IP address of MGM node

DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

 

[ndbd]

HostName=192.168.1.151           # Hostname or IP address

NodeId=2                      # Node ID for this data node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

 

[ndbd]

# Options for data node "B":

HostName=192.168.1.152          # Hostname or IP address

NodeId=3                        # Node ID for this data node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

 

[mysqld]

NodeId=4

HostName=192.168.1.153  # Hostname or IP address

 

[mysqld]

NodeId=5

HostName=192.168.1.154

2-4、ndb节点(数据节点)

vim /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

user=mysql

symbolic-links=0

ndbcluster

ndb-connectstring=192.168.1.150

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

[mysql_cluster]

ndb-connectstring=192.168.1.150

初始化数据库:

mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

会初始化mysql的data目录,并且创建那些系统表。
同样也会初始化系统表空间并且关联innodb表与数据结构。

chown-R mysql.mysql /usr/local/mysql

2-5、SQL节点

vim /etc/my.cnf

[client]

socket=/usr/local/mysql/sock/mysql.sock

 

[mysqld]

ndbcluster

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

ndb-connectstring=192.168.1.150

 

[mysql_cluster]

ndb-connectstring=192.168.1.150

mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

chown-R mysql.mysql /usr/local/mysql

2-6、把mysql添加为系统服务

cp mysql/support-files/mysql.server  /etc/rc.d/init.d/

chmod +x /etc/rc.d/init.d/mysql.server

chkconfig --add mysql.server

3、Cluster启动

3-1、启动管理节点

首次启动需要加  --initial

mysql/bin/ndb_mgmd -f /data/mysql-cluster/config.ini --initial 

报错的话:

mysql/bin/ndb_mgmd --skip-config-cache -f /data/mysql-cluster/config.ini --initial

3-2、启动数据节点

首次启动需要+ --initial

/data/mysql/bin/ndbd --initial

3-3、启动 SQL 节点

/data/mysql/bin/mysqld_safe --user=mysql &

3-4、查看集群状态

管理节点

ndb_mgm

show

4、单机部署

4-1、解压安装

tar zxvf mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz

mv mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64/ mysql

mkdir sock

mkdir /var/lib/mysql

bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cp support-files/mysql.server /etc/init.d/mysql

vim  data/z3.pid

chmod 755 z3.pid

chown -R mysql.mysql mysql

4-2、配置

vim /etc/my.cnf

[client]

default-character-set=utf8

socket=/usr/local/mysql/sock/mysql.sock

#user=root

#password=123321

host=localhost

port=3306

 

[mysqld]

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

skip-grant-tables    //忽略登录密码

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/lib/mysql/mysqld.pid

4-3、启动

service mysql start(stop、status)

4-4、登录

mysql/bin/mysql -uroot -p

4-5、授权

grant  all  privileges  on  *.*  to  'user'@'%'  indetified  by  'password' with grant option         //授权

flush privileges  //使立即生效

 

转载于:https://www.cnblogs.com/archimedes-euler/p/10044518.html


https://dhexx.cn/news/show-915549.html

相关文章

Linux 系统日志的组成

Linux 系统日志的组成主要的日志子系统:1.连接时间日志--由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。2.进程统计--由系统内核执行。当一个…

Eclipse快捷键 10个最有用的快捷键

Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrlshiftr:打开资源 这可能是所有快捷键组合中最省时间的了…

7-7 12-24小时制(15分)

7-7 12-24小时制 (15分) 编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。 输入格式: 输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分…

《商君列传第八》–读书总结

2012年看完了电视剧《大秦帝国-黑色裂变》,2013年看完了电视剧《大秦帝国-纵横》。 看到商君(商鞅)和张子(张仪)的故事,很是激动。 不过,电视剧、小说、正史毕竟还是有差异的。 所以呢&#…

《Cracking the Coding Interview》——第13章:C和C++——题目1

2014-04-25 19:13 题目:用C写一个读取文件倒数K行的方法。 解法:因为是要取倒数K行,所以我的思路是一行一行地读。过程中需要保存一个长度为K的链表,每次新读到一行都将表头节点移到表尾,如此滚动直到文件结束。最后表…

Python 中的strip lstrip rstrip使用方法 .

Python中的strip用于去除字符串的首尾字符;同理,lstrip用于去除左边的字符;rstrip用于去除右边的字符。 这三个函数都可传入一个参数,指定要去除的首尾字符。 需要注意的是,传入的是一个字符数组,编译器去除…

【转】python的定时任务

推荐新手对python的定时任务了解 https://www.jianshu.com/p/b77d934cc252,写得比较全面。 1、while循环中使用sleep 缺点:不容易控制,而且是个阻塞函数 def timer(n): 每n秒执行一次 while True: print(time.strftime(%Y-%m-%d %X,ti…

6-9 统计个位数字(15分)

6-9 统计个位数字 (15分) 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。 函数接口定义: int Count_Digit ( const int N, const int D ); 其中N和D都是用户传入的参数…

2012总结--第8篇--感情篇

1.亲情 家人 2012年春上离开家里后,还没有回去过。 只是偶尔给家里打个电话。家人倒是希望我早点回去。 不知道为什么,我总有种“ 不成就一番伟业不回家"的感觉。 用某个MM的话来说,“ 这个儿子白养了”。 这话太犀利了。无言以对&#…

Appium+python的单元测试框架unittest(1)

unittest为python语言自带的单元测试框架,python把unittest封装为一个标准模块封装在python开发包中。unittest中常用的类有:unittest.TestCase、unittest.TestSuite、unittest.TextTestRunner、test fixture 一、单元测试框架 单元测试框架并非只能用于…