安装并配置postgresql
参考以下两篇文章
https://www.postgresql.org/download/linux/redhat/
http://www.jianshu.com/p/7e95fd0bc91a
在执行完initdb命令后,会创建/var/lib/pgsql/db_version目录,里面有data目录和initdb.log。如果想重新初始化数据库,则必须删除db_version目录后再执行initdb命令,否则会报Data directory is not empty!
需要注意的是,在配置pg_hba.conf时,如果允许所有ip可通过密码连接,则应添加
host all all 0.0.0.0/0 md5
password,要求客户端提供一个未加密的口令进行认证,有安全风险。
md5,要求客户端提供一个双重MD5散列的口令进行认证。建议用这个
卸载命令是:
yum -y remove postgresql*
安装并配置mysql(5.7.26)
从官网下载mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,这个包大概500M左右,里面包含了很多rpm文件,如mysql-community-server-5.7.26-1.el7.x86_64.rpm、mysql-community-client-5.7.26-1.el7.x86_64.rpm等等。
安装:
在安装mysql之前,要先卸载自带的mariadb:yum -y remove mariadb*
之后再rpm -ivh xxx.rpm,一顿操作,要rpm -ivh好几次,顺序不用死记,根据报错调整即可。一般是mysql-community-common-5.7.26-1.el7.x86_64.rpm、mysql-community-libs-5.7.26-1.el7.x86_64.rpm、mysql-community-client-5.7.26-1.el7.x86_64.rpm、mysql-community-server-5.7.26-1.el7.x86_64.rpm。在rpm server时,可能会报错perl(strict) is needed的依赖错误,要先安装yum -y install perl,再rpm server。
配置:
修改/etc/my.cnf文件,vi /etc/my.cnf。
启动mysql:service mysqld start
停止mysql:service mysqld stop
重启mysql:service mysqld restart
查看mysql状态:service mysqld status
启动之后,mysql会自动生成一个初始化密码,存储在/var/log/mysqld.log文件中。
查看密码:grep 'temporary password' /var/log/mysqld.log
命令行连接mysql:# mysql -u root -p,输入刚刚查出来的密码,即可连接上mysql服务器,显示mysql>
查看所有的数据库:show databases; 会报错"You must reset your password using ALTER USER statement before executing this statement",需要先修改密码才能执行查询语句。
在mysql命令行客户端执行
set global validate_password_policy=0;
set global validate_password_length=4;
接下来就可以任意修改密码了。在另外一个会话中执行命令:# mysql_secure_installation,修改密码为123456。
修改密码后,重新用# mysql -u root -p命令连接mysql,输入新密码,即可连上。
这个时候,虽然在mysql服务器上可以用命令行客户端连上mysql服务,但是在其他主机,用连接软件却连不上。
在mysql命令行客户端执行
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
flush privileges;
root@%的意思是,在所有ip用root用户。上面的password别忘了换成实际的密码。
配置mysql的主从:
修改master服务器的/etc/my.cnf,添加
#数据库服务的唯一标识 server-id=1 #设置此参数表示启用binlog功能,并指定路径名称 log-bin=/var/lib/mysql/mysql-bin sync_binlog=0 #设置binlog的过期天数 expire_logs_days=7 #binlog使用内存大小 binlog_cache_size=1M #同步哪个数据库 binlog-do-db=eXX #不同步哪个数据库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys
重启master的mysql服务。
修改slave服务器的/etc/my.cnf,添加
server-id=2 #加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。 read_only = 1 master_info_repository=TABLE relay_log_info_repository=TABLE
重启slave的mysql服务。
在master服务器,进入mysql Cli,执行命令
mysql> show master statusG;
记住“File”和“Position”的值。假如File值是mysql-bin.000005,Position值是154。
在slave服务器,进入mysql Cli,执行命令
mysql> stop slave;
mysql> change master to master_host='192.168.56.100',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=154;
mysql> start slave;
验证。执行命令
mysql> show slave statusG;
查看复制状态,如果出现“Slave_IO_Running: Yes”和“Slave_SQL_Running: Yes”,则表示状态正常。
需要注意的是,库不会同步,即在master mysql创建库后,不会自动同步到slave mysql,需要在slave mysql上先手动创建同名库,然后stop slave,再change master,再start slave。在master mysql上的DDL、以及写DML都会同步至slave mysql,而在slave mysql的任何操作都不会同步至master mysql。