zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    纠结
    oracle大批量数据更新
    SQL Server 2008 “因为数据库正在使用,所以无法获得对数据库的独占访问权”解决方法
    面试总结
    Oracle 存储过程发送邮件
    ASP.NET页面之间传递值的几种方法<转>
    模式窗口里面,服务器控件添加确认操作时,又弹出新窗口
    深入研究Asp.net页面的生命周期<转>
    asp.net用jquery为服务器控件添加javascript处理
    sqlserver 把对象发布成webservice遇到的问题
  • 原文地址:https://www.cnblogs.com/koushr/p/5873391.html
Copyright © 2011-2022 走看看