koushr

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)

下载地址https://dev.mysql.com/downloads/mysql/

从官网下载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。

mysql配置文件是/etc/my.cnf文件,里面指定了join_buffer_size、sort_buffer_size以及mysql数据目录datadir、错误日志文件log-error,如果想自定义的话,可以修改my.cnf文件。

启动mysql:systemctl start mysqld.service

停止mysql:systemctl stop mysqld.service

重启mysql:systemctl restart mysqld.service

查看mysql状态:systemctl status mysqld.service

启动之后,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 status\G

记住“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 status\G

查看复制状态,如果出现“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。

分类:

技术点:

相关文章: