Powerdns


Powerdns安裝配置

 

一.安裝MYSQL服務組件 2

二.安裝PowerDNS 2

三、安裝PowerAdmin管理平台 4

四.搭建phpMyadmin管理mysql 8

五.MySQL 主從制作 9

六.MySQL主主制作 14

 

一.安裝MYSQL服務組件

yum install wget

cd /usr/local/src
wget http://soft.laozuo.org/powerdns/epel-release-6-8.noarch.rpm
rpm -Uvh ./epel-release-6-8.noarch.rpm

因為PowerDNS是需要用到MYSQL數據庫存儲數據的,所以需要搭建MYSQL數據庫環境。

yum -y install mysql mysql-server #安裝MYSQL
chkconfig --levels 235 mysqld on #設置開機啟動
/etc/init.d/mysqld start

修改root用戶mysql密碼

mysqladmin -u root password  mysql^regex$

 

MYSQL登錄錯誤:mysqladmin: connect to server at "localhost" failed

參考:

http://blog.sina.com.cn/s/blog_8442befd01015zld.html

二.安裝PowerDNS

yum -y  install pdns pdns-backend-mysql

連接MYSQL,創建數據庫

mysql -u root -p

連接之后,輸入我們上面設置的密碼登錄MYSQL,之后開始創建數據庫和用戶

create database powerdns;      #創建數據庫

#創建數據庫用戶power_user ,並且設置www.laozuo.org為密碼,我們設置的時候修改成自己的密碼

grant all on powerdns.* to'power_user'@'localhost' identified by'mysql^regex$';
flush privileges;

#創建數據表

use powerdns;
create table domains (
id int auto_increment,
name varchar(255) not null,
master varchar(128) default null,
last_check int default null,
type varchar(6) not null,
notified_serial int default null,
account varchar(40) default null,
primary key (id));

 

create unique index name_index on domains(name);


create table records (
id int auto_increment,
domain_id int default null,
name varchar(255) default null,
type varchar(6) default null,
content varchar(255) default null,
ttl int default null,
prio int default null,
change_date int default null,
primary key(id));

 

create index rec_name_index on records(name);
create index nametype_index on records(name,type);
create index domain_id on records(domain_id);

create table supermasters (
ip varchar(25) not null,
nameserver varchar(255) not null,
account varchar(40) default null);

 

#退出當前MYSQL管理

quit;

 

編輯vi /etc/pdns/pdns.conf配置文件 加到最后

#launch=bind

launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=power_user
gmysql-password=mysql^regex$     
gmysql-dbname=powerdns

 

注意:賬號和密碼和后面的安裝步驟要一致

添加上述至pdns.conf最后,注意修改上面的數據庫用戶名以及密碼對照上面設置的。

設置開機自動啟動PowerDNS

chkconfig --levels 235 pdns on
/etc/init.d/pdns start

到目前為止,我們POWERDNS已經安裝完畢,我們后面需要安裝WEB管理界面。

三、安裝PowerAdmin管理平台

A - 安裝PHP環境

yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

設置開機啟動apache

chkconfig --levels 235 httpd on
/etc/init.d/httpd start

B - 安裝環境需要的2個支持組件

yum -y install php-pear-DB php-pear-MDB2-Driver-mysql

C - 安裝PowerAdmin

以上A,B都完成PowerAdmin 需要支持的環境,這里我們安裝最新poweradmin-2.1.7版本包

cd /tmp
wget http://soft.laozuo.org/powerdns/poweradmin-2.1.7.tgz

tar zxvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/poweradmin/

我們先導臨時文件夾tmp中下載和解壓最新版本poweradmin-2.1.7,然后移動到VAR/WWW/HTML目錄下。

這樣完畢之后,我們可以用自己VPS的IP地址/poweradmin/install/打開POWERDNS安裝向導。

 

 

 

第五、安裝PowerAdmin向導

這里我們看上圖,選擇第一個英文語言,后面我們在設置賬戶登錄時候可以選擇CHINESE。

 

 

 

這里輸入的是設置的數據庫信息,以及設置Poweradmin面板密碼。

 

 

 

power_user qwe123

master.dns.com        SOA

mysql -uroot -p           mysql^regex$

GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'power_user'@'localhost'
IDENTIFIED BY 'mysql^regex$';

flush privileges;

設置數據庫用戶信息,以及DNS的域名服務器信息。

然后一直確定到最后,需要刪除install/目錄文件,然后在ip地址/poweradmin/登錄POWERDNS面板。

cd /var/www/html/poweradmin

cp install/htaccess.dist .htaccess

mv install /tmp/

 

 

 

面板管理用戶名admin,密碼為我們之前設置的,可以選擇CHINESE中文面板。

 

 

 

到目前為止,我們已經看到PowerDNS全部安裝完畢,而且可以登錄管理界面。因為是演示操作,所以數據庫我這里用的root信息,如果我們真實搭建時候需要單獨一個用戶信息,確保賬戶的安全。對於如何使用,如果以后有時間寫一篇補充應用方法,一般會用的朋友應該自己能琢磨。

 

 

四.搭建phpMyadmin管理mysql

 

測試LAMP搭建開源數據web管理程序phpMyadmin

 

cd /usr/local/src

wget https://files.phpmyadmin.net/phpMyAdmin/3.5.8.2/phpMyAdmin-3.5.8.2-all-languages.tar.gz

tar xf phpMyAdmin-3.5.8.2-all-languages.tar.gz

mv /usr/local/src/phpMyAdmin-3.5.8.2-all-languages /usr/local/apache2/htdocs/pma/

cd /usr/local/apache2/htdocs/

chmod 755 pma

cd pma

cp -f config.sample.inc.php config.inc.php

chown -R apache:apache /usr/local/apache2/htdocs/pma/

 

 

訪問:

http://ip/pma

 

 

解決 phpmyadmin #2002 無法登錄 MySQL 服務器

過了一個元旦,phpMyAdmin竟然無法登錄了,輸入用戶名和密碼后點擊“執行”后一直報 “#2002 無法登錄 MySQL 服務器”。

百度找到了一個解決辦法,將 “pma”文件夾下的config.inc.php文件中的

$cfg['Servers'][$i]['host'] = 'localhost';

修改為

$cfg['Servers'][$i]['host'] = '127.0.0.1';

 

 

root   mysql^regex$

 

 

五.MySQL 主從制作

http://369369.blog.51cto.com/319630/790921/

 

主從服務器分別作以下操作:
  1.1、版本一致
  1.2、初始化表,並在后台啟動mysql
  1.3、修改root的密碼

2、修改主服務器master:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必須]啟用二進制日志
       server-id=222      //[必須]服務器唯一ID,默認是1,一般取IP最后一段

3、修改從服務器slave:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[不是必須]啟用二進制日志
       server-id=226      //[必須]服務器唯一ID,默認是1,一般取IP最后一段

4、重啟兩台服務器的mysql
   /etc/init.d/mysqld restart

 

 

5.在主服務器上建立帳戶並授權slave:
   #mysql -uroot -p   ^rew234cG
   mysql>

GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';

 

6、登錄主服務器的mysql,查詢master的狀態
   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000004 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)
   注:執行完此步驟后不要再操作主服務器MYSQL,防止主服務器狀態值變化

 

7、配置從服務器Slave:

mysql -uroot -p   ^rew234cG

>

change master to master_host='10.32.100.251',

master_user='mysync',

master_password='q123456',

master_log_file='mysql-bin.000001',

master_log_pos=251; 

 

>start slave;

 

8、檢查從服務器復制功能狀態:

   mysql> show slave status\G

   *************************** 1. row ***************************

              Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.2.222  //主服務器地址
              Master_User: mysync   //授權帳戶名,盡量避免使用root
              Master_Port: 3306    //數據庫端口,部分版本沒有此行
              Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
              Read_Master_Log_Pos: 600     //#同步讀取二進制日志的位置,大於等於Exec_Master_Log_Pos
              Relay_Log_File: ddte-relay-bin.000003
              Relay_Log_Pos: 251
              Relay_Master_Log_File: mysql-bin.000004
              Slave_IO_Running: Yes    //此狀態必須YES
              Slave_SQL_Running: Yes     //此狀態必須YES
                    ......

注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。

以上操作過程,主從服務器配置完成。
  
9、主從服務器測試:

主服務器Mysql,建立數據庫,並在這個庫中建表插入一條數據:

  mysql> create database hi_db;
  Query OK, 1 row affected (0.00 sec)

  mysql> use hi_db;
  Database changed

  mysql>  create table hi_tb(id int(3),name char(10));
  Query OK, 0 rows affected (0.00 sec)
 
  mysql> insert into hi_tb values(001,'bobu');
  Query OK, 1 row affected (0.00 sec)

  mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db                |
   | mysql                |
   | test                 |
   +--------------------+
   4 rows in set (0.00 sec)

從服務器Mysql查詢:

   mysql> show databases;

   +--------------------+
   | Database               |
   +--------------------+
   | information_schema |
   | hi_db                 |       //I'M here,大家看到了吧
   | mysql                 |
   | test          |

   +--------------------+
   4 rows in set (0.00 sec)

   mysql> use hi_db
   Database changed
   mysql> select * from hi_tb;           //查看主服務器上新增的具體數據
   +------+------+
   | id   | name |
   +------+------+
   |    1 | bobu |
   +------+------+
   1 row in set (0.00 sec)

如果同步不成功

 1:停掉從庫

mysql> slave stop

2:主庫上找到日志和位置

mysql> show master status;

3:手動同步

mysql> change master to

> master_host='master_ip',

> master_user='gechong',

> master_password='gechong',

> master_port=3306,

> master_log_file='mysql-bin.000020',

> master_log_pos=135617781;

1 row in set (0.00 sec)

4:啟動從庫

mysql> slave start;

1 row in set (0.00 sec)

 

  

 

 

如果有異常需要跳過:

>slave stop;

>SET GLOBAL sql_slave_skip_counter = 1;

>slave start;

 

 

訪問信息:

主:

http://10.32.100.251/poweradmin/edit.php?id=3

admin  qwe123

mysql賬號密碼:  root mysql^regex$

從:

http://10.32.100.252/poweradmin/index.php  (注意不要修改數據)

admin  qwe123

mysql賬號密碼:  root mysql^regex$

 

 

 

 

 

 

 

 

 

參考網站:

http://blog.csdn.net/signmem/article/details/18886143

http://www.laozuo.org/3924.html

 

 

 

六.MySQL主主制作

 

 

 

主從服務器分別作以下操作:
  1.1、版本一致
  1.2、初始化表,並在后台啟動mysql
  1.3、修改root的密碼

1、修改雙方服務器配置文件:

A:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必須]啟用二進制日志
       server-id=222      //[必須]服務器唯一ID,默認是1,一般取IP最后一段
B:

   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必須]啟用二進制日志
       server-id=226      //[必須]服務器唯一ID,默認是1,一般取IP最后一段


2、重啟兩台服務器的mysql
   /etc/init.d/mysqld restart

 

 

3. 在兩台服務器上建立帳戶並授權slave:
A:  

 #mysql -uroot -p   mysql^regex$
   mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';

>flush privileges;

B:

 #mysql -uroot -p   mysql^regex$
   mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';

>flush privileges;

 

 

  1. 登錄對方的服務器的mysql,查詢master的狀態

 注:執行完此步驟后不要再操作主服務器MYSQL,防止主服務器狀態值變化

或者進行鎖表操作

注意!!!!!

生產環境需要申請時間鎖表:

鎖表設置只讀

為后面備份准備,注意生產環境要提前申請停機時間;

mysql> flush tables with read lock;

提示:如果超過設置時間不操作會自動解鎖。

mysql> show variables like '%timeout%';

 

解鎖

     mysql> unlock tables;

 

 

A:
   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000001 |      952 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)
B:

   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000001 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)

 

 

5. 配置從服務器Slave對應對方的log-bin和pos值:

A:   對應B的log-bin和pos值

mysql -uroot -p   mysql^regex$

>

change master to master_host='10.32.100.251',

master_user='mysync',

master_password='q123456',

master_log_file='mysql-bin.000001',

master_log_pos=952; 

 

>start slave;

 

B:   對應A的log-bin和pos值

mysql -uroot -p   mysql^regex$

>

change master to master_host='10.32.100.252',

master_user='mysync',

master_password='q123456',

master_log_file='mysql-bin.000001',

master_log_pos=308; 

 

>start slave;

 

 

6、檢查服務器復制功能狀態:

   mysql> show slave status\G

   *************************** 1. row ***************************

              Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.2.222  //主服務器地址
              Master_User: mysync   //授權帳戶名,盡量避免使用root
              Master_Port: 3306    //數據庫端口,部分版本沒有此行
              Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
              Read_Master_Log_Pos: 600     //#同步讀取二進制日志的位置,大於等於Exec_Master_Log_Pos
              Relay_Log_File: ddte-relay-bin.000003
              Relay_Log_Pos: 251
              Relay_Master_Log_File: mysql-bin.000004
              Slave_IO_Running: Yes    //此狀態必須YES
              Slave_SQL_Running: Yes     //此狀態必須YES
                    ......

注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。

以上操作過程,主從服務器配置完成。
  
7、主從服務器測試:

主服務器Mysql,建立數據庫,並在這個庫中建表插入一條數據:

  mysql> create database hi_db;
  Query OK, 1 row affected (0.00 sec)

  mysql> use hi_db;
  Database changed

  mysql>  create table hi_tb(id int(3),name char(10));
  Query OK, 0 rows affected (0.00 sec)
 
  mysql> insert into hi_tb values(001,'bobu');
  Query OK, 1 row affected (0.00 sec)

  mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db                |
   | mysql                |
   | test                 |
   +--------------------+
   4 rows in set (0.00 sec)

從服務器Mysql查詢:

   mysql> show databases;

   +--------------------+
   | Database               |
   +--------------------+
   | information_schema |
   | hi_db                 |       //I'M here,大家看到了吧
   | mysql                 |
   | test          |

   +--------------------+
   4 rows in set (0.00 sec)

   mysql> use hi_db
   Database changed
   mysql> select * from hi_tb;           //查看主服務器上新增的具體數據
   +------+------+
   | id   | name |
   +------+------+
   |    1 | bobu |
   +------+------+
   1 row in set (0.00 sec)

如果同步不成功

 1:停掉從庫

mysql> slave stop

2:主庫上找到日志和位置

mysql> show master status;

3:手動同步

mysql> change master to

> master_host='master_ip',

> master_user='gechong',

> master_password='gechong',

> master_port=3306,

> master_log_file='mysql-bin.000020',

> master_log_pos=135617781;

1 row in set (0.00 sec)

4:啟動從庫

mysql> slave start;

1 row in set (0.00 sec)

 

  

 

如果有異常需要跳過:

>slave stop;

>SET GLOBAL sql_slave_skip_counter = 1;

>slave start;

 

參考網址:

 

http://blog.csdn.net/socho/article/details/51804720

 

http://blog.csdn.net/lgg201/article/details/5761870

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM