mysql安装

穿精又带淫゛_ 提交于 2019-11-26 10:24:22

tar压缩包安装

#查询mysqlrpm -qa|grep mysqlrpm -qa|grep -i mysql#删除rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64find / -name mysqlyum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6#mysql安装1.解压压缩包    tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/software/2.修改文件夹名字    mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql3.检查并创建用户和用户组    cat /etc/group | grep mysql    cat /etc/passwd |grep mysql    groupadd mysql    useradd -r -g mysql mysql4.创建data文件夹    mkdir data5.授权目录和用户    chown -R mysql:mysql mysql/    chmod -R 755 mysql/6.安装并初始化执行下面命令之前去/etc/目录下查看是否有my.cnf配置文件,如果有,删除或者修改名字备份起来!不然会出现各种PID或者SOCK有关的问题    /usr/local/software/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/software/mysql/data --basedir=/usr/local/software/mysql7.复制启动脚本到资源目录    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld8.增加mysqld服务控制脚本执行权限    chmod +x /etc/rc.d/init.d/mysqld9.将mysqld服务加入到系统服务    chkconfig --add mysqld10.检查mysqld服务是否已经生效    chkconfig --list mysqld11.在/etc 路径下面新增 my.cnf 文件    vim /etc/my.cnf    [mysqld]    basedir=/usr/local/software/mysql    datadir=/usr/local/software/mysql/data    socket =/var/lib/mysqld/mysql.sock    character-set-server=utf8mb4    # Disabling symbolic-links is recommended to prevent assorted security risks    symbolic-links=0                sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION    log-error=/var/log/    pid-file=/var/run/mysqld/mysqld.pid    server-id=1    log-bin=mysql-bin    log-slave-updates=1    default-storage-engine=INNODB    innodb_large_prefix=on    max_connections = 2000    max_connect_errors=2000​    #skip-grant-tables12.授权配置文件chmod 644 /etc/my.cnf13.新建路径在步骤11里面配置了日志文件、pid文件、sock文件的路径,所以要去自己手动创建这些路径,文件不用创建,会自动生成PID路径:/var/run/mysqld/LOG路径:/var/log/SOCK路径:/var/lib/mysqld/14.授权    chown -R mysql /var/lib/mysqld    chgrp -R mysql /var/lib/mysqld    chown -R mysql /var/run/mysqld    chgrp -R mysql /var/run/mysqld    chown -R mysql /var/log    chgrp -R mysql /var/log15.启动mysql    service mysqld start16.查看进程配置生效    ps -ef | grep mysql17.登录mysql    mysql -uroot -p    1.提示找不到mysql命令的话    ln -s /usr/local/software/mysql/bin/mysql /usr/bin    2.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'     ln -s /var/lib/mysqld/mysql.sock /tmp/18.修改root密码    flush privileges;    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';    flush privileges;19.配置3306端口关闭防火墙:    a. 永久性生效    开启:chkconfig iptables on    关闭:chkconfig iptables off    b. 即时生效,重启后失效    开启:service iptables start    关闭:service iptables stop    c.查看防火墙状态    service iptables status如果防火墙打开则配置端口,否则就不用了配置了。打开/etc/sysconfig/iptables文件,找到22端口(这个是默认配置好的),复制多一行在下面,把22改成3306就行,记住,不要复制到最后一行    service iptables restart20.测试连接 navicat     1. 1130 - Host '192.168.114.1' is not allowed to connect to this MySQL server    flush privileges;    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;    flush privileges;    2. 1045 - Access denied for user 'root'@'192.168.114.1' (using password:YES)    flush privileges;    grant all privileges on *.* to 'root'@'%' identified by 'root';    flush privileges;    备注:如果以后mysql启动失败,[root@pengyy63 ~]# service mysqld startStarting MySQL. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).删除 /var/run/mysqldrm -rf /var/run/mysqldmkdir /var/run/mysqldchown -R mysql /var/run/mysqldchgrp -R mysql /var/run/mysqld,如果还是不行,可以进入 /tmp  目录下 ,删除   mysql.sock  mysql.sock.lock    

rpm安装

1.server安装rpm -ivh mysql-community-server-5.7.26-1.el6.x86_64.rpm --force --nodeps2.client安装rpm -ivh mysql-community-client-5.7.26-1.el6.x86_64.rpm --force --nodeps3.vim  my.cnf  输入任意密码登录mysql[mysqld]skip-grant-tables4.登录mysql,修改密码flush privileges;set password for root@localhost = password('root');flush privileges;5.vim /etc/my.cnf  [mysqld]#skip-grant-tables6.重启mysqld服务service mysqld restart

一主多从

主从复制是指服务器分为主服务器和从服务器,主服务器负责读和写,从服务器负责读,主从复制也叫master/slave,master是主,slave是从

主从复制原理:1.当master主服务器上的数据发生改变时,则将其改变写入 二进制日志文件 中2.slave从服务器会在一定时间间隔内对master主服务器上的二进制日志文件进行探测,探测其是否发生过改变3.如果探测到master主服务器的二进制日志文件发生改变,则开始一个 IO Thread 请求master二进制事件4.同时master 主服务器为每个 IO Thread 启动一个 dump Thread,用于向其发送二进制事件(事件即日志)5.slave从服务器将接收到的二进制事件保存到自己本地的 中继日志(Realy log) 文件中6.slave从服务器将启动 SQLThread 从中继日志文件 中读取二进制日志,在本地重放,使其数据和主服务器一致7.最后 IO Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒备注:主从数据库不能够实时同步,会产生毫秒级别的误差​master主服务器配置:    log-bin=/var/lib/mysqld/binlog    server-id=1    binlog-do-db = pengyylog-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的server-id:master端的ID号;binlog-do-db:要同步的数据库名还可以设置不同步的数据库:不同步mysql库和test库binlog-ignore-db = mysql binlog-ignore-db = test​slave从服务器配置:    server.id=2​1.配置主从服务器 重启mysqld  service mysqld restart    192.168.31.45(master)    vim /etc/my.cnf        log-bin=/var/lib/mysqld/binlog        server-id=45​    192.168.31.47(slave)        server-id=47​    192.168.31.48(slave)        server-id=48​    192.168.31.49(slave)        server-id=49​2.设置主从关系    2.1设置主服务器        2.1.1在主服务器上创建有复制数据的账号并授权创建用户,每一个从服务器都需要用到一个账户名和密码来连接主服务器,可以为每一个从服务器都创建一个账户,也可以让全部服务器使用同一个账户。下面就为同一个ip网段的所有从服务器创建一个只能进行主从同步的账户。首先登陆mysql,然后创建一个用户名为 copy,密码为 123456 的账户,该账户可以被192.168.31网段下的所有ip地址使用,且该账户只能进行主从同步。grant replication slave on *.* to 'copy'@'192.168.31.%' identified by '123456';        2.1.2建议重置一下主服务器状态 reset master可以先查看一下主服务器状态 show master status;    一般刚开始设置的是以  position 偏移量为 154      重置主服务器状态  reset master;mysql> reset master;Query OK, 0 rows affected (0.02 sec)        2.1.3在主服务器上执行命令,获取主服务器二进制文件binlog文件名及坐标(二进制文件名和坐标值会在后面用到)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000001 |      154 |              |                  |                   |+---------------+----------+--------------+------------------+-------------------+    2.2设置从服务器        2.2.1重置从服务器的状态 reset slave;可以先查看一下从服务器状态 show slave status; 正常情况下是 空状态,可以不重置mysql> show slave status;Empty set (0.00 sec)--------------------------------------------------------stop slave;reset slave;        2.2.3在从服务器上指定主服务器CHANGE MASTER TO MASTER_HOST='192.168.31.45',MASTER_PORT=3306,MASTER_USER='copy',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=154; MASTER_HOST='192.168.31.45'     --主服务器ipMASTER_PORT=3306                --主服务器端口MASTER_USER='copy'              --主服务器上配置过用来数据同步的账号MASTER_PASSWORD='123456',       --主服务器上配置过用来数据同步的账号的密码MASTER_LOG_FILE='binlog.000001' --二进制文件MASTER_LOG_POS=154              --偏移量        2.2.4查看从服务器状态 show slave status \G;        2.2.5在从服务器上执行开始复制命令  start slave;    2.3主从验证        2.3.1 show slave status \G;            Slave_IO_Running: No             Slave_SQL_Running: Yes问题:在进行从服务器安装mysql时,直接将虚拟机克隆 ,导致  auto.cnf  中的 server-uuid 一致所以修改 uuid进入mysql select uuid();mysql> select uuid();+--------------------------------------+| uuid()                               |+--------------------------------------+| ca8f7a58-77f9-11e9-a69c-0050562fa741 |+--------------------------------------+vim auto.cnf[auto]server-uuid=ca8f7a58-77f9-11e9-a69c-0050562fa741​重启 mysqld 服务  service mysqld restart Slave_IO_Running: Yes Slave_SQL_Running: Yes

双主双从

1.配置主从服务器 重启mysqld  service mysqld restart    192.168.31.45(master)    vim /etc/my.cnf        log-bin=/var/lib/mysqld/binlog        server-id=45​    192.168.31.46(master)        log-bin=/var/lib/mysqld/binlog        server-id=46​    192.168.31.47(slave)        server-id=47​    192.168.31.48(slave)        server-id=48​    192.168.31.49(slave)        server-id=49​2.设置主从关系    2.1设置主服务器        2.1.1在主服务器上创建有复制数据的账号并授权创建用户,每一个从服务器都需要用到一个账户名和密码来连接主服务器,可以为每一个从服务器都创建一个账户,也可以让全部服务器使用同一个账户。下面就为同一个ip网段的所有从服务器创建一个只能进行主从同步的账户。首先登陆mysql,然后创建一个用户名为 copy,密码为 123456 的账户,该账户可以被192.168.31网段下的所有ip地址使用,且该账户只能进行主从同步。grant replication slave on *.* to 'copy'@'192.168.31.%' identified by '123456';grant replication slave on *.* to 'copy'@'%' identified by '123456';        2.1.2在主服务器上编辑 my.cnf        在(45)编辑 vim  my.cnf 增加以下四行        auto_increment_increment = 2         auto_increment_offset = 1         log-slave-updates         sync_binlog=1        在(46)编辑 vim  my.cnf 增加以下四行        auto_increment_increment = 2         auto_increment_offset = 2         log-slave-updates        sync_binlog=1​    2.2设置服务器状态(45、46互为主从服务器,45为主,46则是45的从;46为主,45则为46的从)        2.2.1登录45服务器,查看主服务器状态,有必要进行重置mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000003 |      154 |              |                  |                   |+---------------+----------+--------------+------------------+-------------------+mysql> reset master;Query OK, 0 rows affected (0.02 sec)​mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000001 |      154 |              |                  |                   |+---------------+----------+--------------+------------------+-------------------+        2.2.2登录46服务器查看主状态ysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000003 |      599 |              |                  |                   |+---------------+----------+--------------+------------------+-------------------+mysql> reset master;Query OK, 0 rows affected (0.01 sec)mysql> show master status;+---------------+----------+--------------+------------------+-------------------+| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000001 |      154 |              |                  |                   |+---------------+----------+--------------+------------------+-------------------+        2.2.3设置主从192.168.31.45(master)  ---->    192.168.31.47(slave)192.168.31.46(master)  ---->    192.168.31.48(slave)45 、46 互为主从 ===========================>>>>>>>>>>>>>>>>>>>>>>>>>>>>192.168.31.45(master)  ----> 192.168.31.46(slave)   192.168.31.47(slave)    CHANGE MASTER TO MASTER_HOST='192.168.31.45',MASTER_PORT=3306,MASTER_USER='copy',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=154; 192.168.31.46(master)  ----> 192.168.31.45(slave)   192.168.31.48(slave)    CHANGE MASTER TO MASTER_HOST='192.168.31.46',MASTER_PORT=3306,MASTER_USER='copy',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=154;        2.2.4开始复制        start slave;--------------------------------------------------------    2.3主从验证        2.3.1 show slave status \G;            Slave_IO_Running:  Yes             Slave_SQL_Running: Yes                          

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!