mysql主从搭建切换
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,环境:172.30.249.156 percona5.6.27 主机名:tr-mysql 跑着生产环境的应用的虚拟机192.168.129.153 percona5.6.27 主机名:trcloud-
千家信息网最后更新 2025年01月21日mysql主从搭建切换
Query OK, 0 rows affected (0.03 sec)
mysql> grant replication slave,super on *.* to 'replicat'@'192.168.129.153';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
建立一个帐户backup,并且只能允许从10.211.55.5这个地址上来登陆,密码是passw。
2、配置master、slave参数
主库:
打开二进制日志、指定唯一server ID、
[root@localhost data]# vi /etc/my.cnf
……
log-bin=/data/DB/mysql/mysql-bin
server-id=1
…….
备库:
打开二进制日志、指定唯一server ID
[root@localhost mysql]# vi /etc/my.cnf
……
log-bin=/data/DB/mysql/mysql-bin
server-id=2
…….
3、拷贝并恢复备库数据
主库备份:
[root@tr-mysql backup]# xtrabackup --backup --user=root --datadir=/data/DB/mysql/ --target-dir=/data/backup/20160628bak/
........
160628 09:55:17 Executing UNLOCK TABLES
160628 09:55:17 All tables unlocked
160628 09:55:17 Backup created in directory '/data/backup/20160628bak/'
160628 09:55:17 [00] Writing backup-my.cnf
160628 09:55:17 [00] ...done
160628 09:55:18 [00] Writing xtrabackup_info
160628 09:55:18 [00] ...done
xtrabackup: Transaction log of lsn (1696091795) to (1696091805) was copied.
160628 09:55:18 completed OK!
[root@tr-mysql backup]# xtrabackup --prepare --target-dir=/data/backup/20160628bak/ --让备份数据一致
[root@tr-mysql backup]# scp 20160628bak/* root@192.168.129.153:/data/backup/20160628bak/
备库恢复:
[root@trcloud-gtt-db ~]# rsync -avrp /data/backup/20160628bak/ /data/DB/mysql/
........
sent 6426459950 bytes received 259 bytes 197737237.20 bytes/sec
total size is 6425674808 speedup is 1.00
[root@trcloud-gtt-db~ ]# chown -R mysql:mysql /data/DB/mysql
4、主库准备测试数据
mysql> use test;
mysql> create table id(id int(10));
Query OK, 0 rows affected (1.02 sec)
mysql> insert into id values(1);
Query OK, 1 row affected (0.14 sec)
5、设置复制进程
查看master当前binlog文件
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 834 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
slave创建复制进程
mysql> change master to master_host='172.30.249.156',
-> master_user='replicat',
-> master_password='passw',
-> master_log_file='mysql-bin.000002',
-> master_log_pos=0;
6、启动slave,查看进程
启动
mysql> start slave;
Query OK, 0 rows affected (0.03 sec)
查看slave进程
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.30.249.156
Master_User: replicat
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 834
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 997
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 834
Relay_Log_Space: 1171
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 7d7ee32c-26cd-11e6-8fe2-fa163ecb3078
Master_Info_File: /data/DB/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
在这里主要是看:
Slave_IO_Running=Yes
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。
查看master进程
mysql> show processlist\G;
........
*************************** 3. row ***************************
Id: 4
User: canal
Host: 172.30.248.95:35966
db: NULL
Command: Binlog Dump
Time: 11821
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Rows_sent: 0
Rows_examined: 0
........
*************************** 5. row ***************************
Id: 12
User: replicat
Host: 192.168.129.153:51948
db: NULL
Command: Binlog Dump
Time: 614
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Rows_sent: 0
Rows_examined: 0
7、测试结果
slave上查看创建的表和数据都有了
mysql> select * from id;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
在master上修改数据
mysql> update id set id=2 where id =1;
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查看slave数据
mysql> select * from id;
+------+
| id |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
测试通过
1、在从库(新的主服务器)上创建用户
mysql> create user 'replicat'@'172.30.249.156' identified by 'passw';
Query OK, 0 rows affected (0.03 sec)
mysql> grant replication slave,super on *.* to 'replicat'@'172.30.249.156';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、从库(新的主服务器) 操作
mysql> STOP SLAVE IO_THREAD;
Query OK, 0 rows affected (0.03 sec)
mysql> SHOW PROCESSLIST;
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| 1 | event_scheduler | localhost | NULL | Daemon | 2238 | Waiting on empty queue | NULL | 0 | 0 |
| 5 | root | localhost | test | Query | 0 | init | SHOW PROCESSLIST | 0 | 0 |
| 7 | system user | | NULL | Connect | 809 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL | 0 | 0 |
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
确保状态为:has read all relay log
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 172.30.249.156
Master_User: replicat
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 1523
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 1686
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1523
Relay_Log_Space: 1860
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 7d7ee32c-26cd-11e6-8fe2-fa163ecb3078
Master_Info_File: /data/DB/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
3、从库变主库
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.03 sec)
mysql> RESET MASTER;
Query OK, 0 rows affected (0.12 sec)
mysql> RESET SLAVE;
Query OK, 0 rows affected (0.11 sec)
mysql> show master status \G
*************************** 1. row ***************************
File: mysql-bin.000009
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
4、主库变从库
mysql> RESET MASTER;
Query OK, 0 rows affected (3.36 sec)
mysql> RESET SLAVE;
Query OK, 0 rows affected (0.00 sec)
设置slave进程
mysql> change master to master_host='192.168.129.153',
-> master_user='replicat',
-> master_password='passw',
-> master_log_file='mysql-bin.000009',
-> master_log_pos=120;
启动slave进程
mysql> start slave;
5、修改参数并重启
将从库变成只读
修改现在的从库参数
read-only =1
innodb_read_only =1
super_read_only =1 #(拥有super权限也无法修改)
重启
[root@tr-mysql mysql]# service mysql restart
6、检查主从是否都正常
主库
SHOW PROCESSLIST;
show master status \G
从库
SHOW PROCESSLIST;
start slave;
show slave status \G
7、测试数据
主库
mysql> update id set id=1 where id=2;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
从库
mysql> select * from id;
+------+
| id |
+------+
| 1 |
+------+
切换成功
环境:
172.30.249.156 percona5.6.27 主机名:tr-mysql 跑着生产环境的应用的虚拟机
192.168.129.153 percona5.6.27 主机名:trcloud-gtt-db 新申请的物理机
工作内容:给生产环境数据库搭建主从架构,并将主库放到新申请的物理机上,连续停机不能超过10分钟
大致流程:搭建主从-->主备切换-->测试结果,因为生产环境数据大概有100多G,考虑到停机时间和效率的问题,恢复备库使用Xtrabackup方式备份恢复,不使用mysqldump和冷备的方式
一:搭建主从
1、创建复制账号在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE权限。
命令如下:
mysql> create user 'replicat'@'192.168.129.153' identified by 'passw';Query OK, 0 rows affected (0.03 sec)
mysql> grant replication slave,super on *.* to 'replicat'@'192.168.129.153';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
建立一个帐户backup,并且只能允许从10.211.55.5这个地址上来登陆,密码是passw。
2、配置master、slave参数
主库:
打开二进制日志、指定唯一server ID、
[root@localhost data]# vi /etc/my.cnf
……
log-bin=/data/DB/mysql/mysql-bin
server-id=1
…….
备库:
打开二进制日志、指定唯一server ID
[root@localhost mysql]# vi /etc/my.cnf
……
log-bin=/data/DB/mysql/mysql-bin
server-id=2
…….
3、拷贝并恢复备库数据
主库备份:
[root@tr-mysql backup]# xtrabackup --backup --user=root --datadir=/data/DB/mysql/ --target-dir=/data/backup/20160628bak/
........
160628 09:55:17 Executing UNLOCK TABLES
160628 09:55:17 All tables unlocked
160628 09:55:17 Backup created in directory '/data/backup/20160628bak/'
160628 09:55:17 [00] Writing backup-my.cnf
160628 09:55:17 [00] ...done
160628 09:55:18 [00] Writing xtrabackup_info
160628 09:55:18 [00] ...done
xtrabackup: Transaction log of lsn (1696091795) to (1696091805) was copied.
160628 09:55:18 completed OK!
[root@tr-mysql backup]# xtrabackup --prepare --target-dir=/data/backup/20160628bak/ --让备份数据一致
[root@tr-mysql backup]# scp 20160628bak/* root@192.168.129.153:/data/backup/20160628bak/
备库恢复:
[root@trcloud-gtt-db ~]# rsync -avrp /data/backup/20160628bak/ /data/DB/mysql/
........
sent 6426459950 bytes received 259 bytes 197737237.20 bytes/sec
total size is 6425674808 speedup is 1.00
[root@trcloud-gtt-db~ ]# chown -R mysql:mysql /data/DB/mysql
4、主库准备测试数据
mysql> use test;
mysql> create table id(id int(10));
Query OK, 0 rows affected (1.02 sec)
mysql> insert into id values(1);
Query OK, 1 row affected (0.14 sec)
5、设置复制进程
查看master当前binlog文件
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 834 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
slave创建复制进程
mysql> change master to master_host='172.30.249.156',
-> master_user='replicat',
-> master_password='passw',
-> master_log_file='mysql-bin.000002',
-> master_log_pos=0;
6、启动slave,查看进程
启动
mysql> start slave;
Query OK, 0 rows affected (0.03 sec)
查看slave进程
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.30.249.156
Master_User: replicat
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 834
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 997
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 834
Relay_Log_Space: 1171
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 7d7ee32c-26cd-11e6-8fe2-fa163ecb3078
Master_Info_File: /data/DB/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
在这里主要是看:
Slave_IO_Running=Yes
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。
查看master进程
mysql> show processlist\G;
........
*************************** 3. row ***************************
Id: 4
User: canal
Host: 172.30.248.95:35966
db: NULL
Command: Binlog Dump
Time: 11821
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Rows_sent: 0
Rows_examined: 0
........
*************************** 5. row ***************************
Id: 12
User: replicat
Host: 192.168.129.153:51948
db: NULL
Command: Binlog Dump
Time: 614
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Rows_sent: 0
Rows_examined: 0
7、测试结果
slave上查看创建的表和数据都有了
mysql> select * from id;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
在master上修改数据
mysql> update id set id=2 where id =1;
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查看slave数据
mysql> select * from id;
+------+
| id |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
测试通过
二:主从切换
1、在从库(新的主服务器)上创建用户
mysql> create user 'replicat'@'172.30.249.156' identified by 'passw';
Query OK, 0 rows affected (0.03 sec)
mysql> grant replication slave,super on *.* to 'replicat'@'172.30.249.156';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、从库(新的主服务器) 操作
mysql> STOP SLAVE IO_THREAD;
Query OK, 0 rows affected (0.03 sec)
mysql> SHOW PROCESSLIST;
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
| 1 | event_scheduler | localhost | NULL | Daemon | 2238 | Waiting on empty queue | NULL | 0 | 0 |
| 5 | root | localhost | test | Query | 0 | init | SHOW PROCESSLIST | 0 | 0 |
| 7 | system user | | NULL | Connect | 809 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL | 0 | 0 |
+----+-----------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
确保状态为:has read all relay log
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 172.30.249.156
Master_User: replicat
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 1523
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 1686
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1523
Relay_Log_Space: 1860
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 7d7ee32c-26cd-11e6-8fe2-fa163ecb3078
Master_Info_File: /data/DB/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
3、从库变主库
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.03 sec)
mysql> RESET MASTER;
Query OK, 0 rows affected (0.12 sec)
mysql> RESET SLAVE;
Query OK, 0 rows affected (0.11 sec)
mysql> show master status \G
*************************** 1. row ***************************
File: mysql-bin.000009
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
4、主库变从库
mysql> RESET MASTER;
Query OK, 0 rows affected (3.36 sec)
mysql> RESET SLAVE;
Query OK, 0 rows affected (0.00 sec)
设置slave进程
mysql> change master to master_host='192.168.129.153',
-> master_user='replicat',
-> master_password='passw',
-> master_log_file='mysql-bin.000009',
-> master_log_pos=120;
启动slave进程
mysql> start slave;
5、修改参数并重启
将从库变成只读
修改现在的从库参数
read-only =1
innodb_read_only =1
super_read_only =1 #(拥有super权限也无法修改)
重启
[root@tr-mysql mysql]# service mysql restart
6、检查主从是否都正常
主库
SHOW PROCESSLIST;
show master status \G
从库
SHOW PROCESSLIST;
start slave;
show slave status \G
7、测试数据
主库
mysql> update id set id=1 where id=2;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
从库
mysql> select * from id;
+------+
| id |
+------+
| 1 |
+------+
切换成功
数据
进程
主从
测试
备份
日志
环境
切换
参数
数据库
用户
生产
主机
二进制
位置
密码
帐户
文件
方式
服务器
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发培训大纲
邯郸软件开发销售公司
反编译apk更改游戏服务器
个人网络安全个人自查报告
以色列网络安全国际合作
苏州软件开发一个多少钱
多媒体发布服务器价格
macmini做软件开发
远程服务器多出一个管理账户
曙光服务器和华为哪个好
江苏智能软件开发厂家批发价
数据库营销的内容包括
安装数据库的前提条件是什么
查看正在工作的数据库的命令
sql数据库怎么创建序列
什么是域名服务器程序
西安球员的数据库
照片如何按数据库类别分类
sql数据库小于怎么打
厦门应用软件开发多少钱
mysql恢复数据库表
全球制裁跟踪数据库
数据库如何做网页视频
新乡七九网络技术
新人 软件开发 培训内容
传奇数据库如何安装
高中毕业学软件开发
启迪控股 国家网络安全
消费软件开发
上交数据库文件的指令