centos7安装并配置postgresql/mysql

安装并配置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。

原文地址:https://www.cnblogs.com/koushr/p/5873391.html