mysql服务器(一)

mysql服务器

1、mysql安装

版本:mysql-advanced-5.6.23-linux-glibc2.5-x86_64

具体可以参考目录下的INSTALL-BINARY文件

#安装mysql,将mysql压缩解压到/usr/local

tar zxvf mysql-advanced-5.6.23-linux-glibc2.5-x86_64.tar.gz -C /uar/local/mysql

cd /usr/local

ln -s mysql-advanced-5.6.23-linux-glibc2.5-x86_64 mysql

cd mysql

#添加mysql用户和群组

groupadd mysql

useradd -r -g mysql mysql

#修改相关目录和文件属主和所属群组

chown -R mysql .

chgrp -R mysql .

或者:chown -R mysql:mysql .

#将目录属主更改为root,避免mysql用户将目录删除

chown -R root .

chown -R mysql data

#使用mysql用户权限来初始化数据库

scripts/mysql_install_db --user=mysql --datadir=/data --keep-my-cnf --no-defaults

#会提示缺少perl-modules

#FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db

yum -y install perl-Module-Install.noarch

#缺少依赖包libaio

#error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

yum -y install libaio-devel

#将mysql添加为服务

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

#将mysql的bin目录加入到PATH环境变量

#在/etc/profile最后面添加

PATH=$PATH:/usr/local/mysql/bin

source /etc/profile

#脚本初始化已经添加mysqld脚本,如果没有直接cp /etc/init.d/mysqld

/etc/rc.d/init.d/mysqld

#启动mysql

/usr/local/mysql/bin/mysqld_safe &

#更改mysql root密码提示

#error: ‘Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

/usr/local/mysqladmin -u root -p password --socket=/var/lib/mysql/mysql.sock

#或者

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

#在/etc/my.cnf 文件socket参数指定为/tmp/mysql.sock

socket=/tmp/mysql.sock

#启动mysql

mysqld_safe --defaults-file=/etc/my.cnf --datadir=/data --pid-file=/tmp/mysql.pid&

#查看mysql启动情况

ps aux | grep mysql

#查看mysql是否在监听端口3306

lsof i:3306

#如图:

#mysql已经启动成功

2、基本配置

#待补充

3、数据库备份和还原

(1)添加从服务器复制用户

#给192.168.137.31这台主机以用户名slave和密码love从主服务器进行同步复制

#远程连接错误

#ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.137.30‘ (113)

#查看错误113

perrot 113

#由于启用防火墙所致,centos7防火墙默认是firewalld

systemctl stop firewalld.service

systemctl disable firewalld

#关闭开启防火墙前后

(2)完全备份和还原

#默认数据库:

#创建数据库d1和d2以及表t1和t2。

create database d1;

create database d2;

use d1;

create table t1(id int,name char(50));

insert into t1 value(1,‘t1name1‘);

insert into t1 value(2,‘t1name2‘);

use d2;

create table t2(id int,name char(50));

insert into t2 value(1,‘t2name1‘);

insert into t2 value(2,‘t1name2‘);

#备份数据库d1和d2表数据,-l会将所有表锁定,备份完成自动解锁,-F备份完成会重新生成binlog日志:

mysqldump -l -F -u root -p d1 >data/d1.sql

mysqldump -l -F -u root -p d2 >data/d2.sql

#备份所有数据库,包括自带的数据库:

mysqldump --all-databases -l -F -u root -p >data/all.sql

#还原到从服务器:

scp data/d*.sql [email protected]:/usr/local/mysql/data

#在从服务器执行:

mysql -u root -p

create database d1;

create database d2;

use d1;

source /usr/local/mysql/data/d1.sql

use d2;

source /usr/local/mysql/data/d2.sql

(3)binlog还原数据

#待补充

4、主从复制

(1)从5.1.7版本开始不支持参数

#5.1.7版本开始不支持master-host、master-user、master-password等参数,在配置从服务器时注意需要在从服务器执行:

change master to master_host=‘主服务器IP‘,master_user=‘同步使用用户名(slave)‘,master_password=‘同步用户对应密码(love)‘;

start slave;

(2)binlog日志文件操作

#重新生成binlog日志,假如当前binlog日志为mysql-bin.000004,新生成的binlog日志就是mysql-bin.000005

flush logs;

#重置binlog日志,即binlog日志会从原点开始记录,如双从mysql-bin.000001开始

reset master;

#查看slave状态

show slave status\G;

#可以使用mysqlbinlog来查看binlog日志

mysqlbinlog /data/mysql-bin.000004

(3)配置从服务器

#安装方法与主服务器一样,不重复说明。

#修改root密码

mysqladmin -u root -p password

change master to master_host=‘192.168.137.30‘,master_user=‘slave‘,master_password=‘love‘;

start slave;

show slave status\G;

#由于之前做了从服务器中复制,并且重置了主和从服务器binlog日志,所以需要以下操作

#在主服务器重置binlog日志,生产环境切勿随便重置binlog日志,重置之后会删除起点之后的所有日志文件

#为方便查看同步效果,如果主服务器已经手动建立过数据库的,应该将它删除,若不删除又不把手动建立的

#数据库备份还原到从服务器,当在主服务器对这些数据库进行增删修时,从服务器由于没有这些数据库,就会报错

#将测试数据库删除,并重置日志文件

drop database d1;

drop database d2;

reset master;

#查看主服务器log_pos位置起点,以便在从服务器设定同步起点,

show master status;

#起点变成120

#从服务器

#配置文件

server_id:必须唯一

replicate-do-db:指定需要同步的数据库,一个数据库一行

replicate-ignore-db:指定不需要同步的数据库,一个数据库一行

#重置从服务器日志并开启复制

reset master;

stop slave;

change master to master_host=‘192.168.137.30‘,master_user=‘slave‘,master_password=‘love‘;

start slave;

#看到Slave_IO_Running和Slave_SQL_Running状态显示为Yes,可以看出与主服务器连接正常

Slave_IO_Running:负责从主服务器将binlog复制到本地,YES表示复制状态正常,NO表示复制状态不正常或者是无法从主服务器复制。

Slave_SQL_Running:负责从复制到本地的binlog日志中读取positon点和sql语句并执行一遍,并且会将自身操作日志写入到relaylog中继日志中。

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

#从服务器正等待主服务器进行增、删、修操作,一旦主服务器进行这些操作,从服务器在刷新时间内就会根据从主服务器的binlog来同步数据

#Replicate_Ignore_DB显示的是忽略同步的数据库

Replicate_Ignore_DB: mysql,test,information_schema,ignoredb

#需要在my.cnf配置文件添加,一行指定一个数据库

replicate-ignore-db=mysql

replicate-ignore-db=test

replicate-ignore-db=information_schema

replicate-ignore-db=ignoredb

#将复制事件写入到自己的二进制日志文件,中继日志和自己binlog日志默认值开启并且存放在/var/lib/mysql

log-slave-updates

#数据库存放位置可以通过datadir参数来更改

datadir=/data

#日志存放位置可以通过log-bin参数加上绝对路径来修改

log-bin=/binlog/mysql-bin

#如果在启动过mysql之后再修改数据目录存放路径,要先将pid文件、中继日志文件和数据库文件复制到修改后目录,不然在启动mysql总会提示找不到pid文件,而无法启动成功,一般都会将binlog文件和数据库文件分开,避免因磁盘损坏而无法使用binlog恢复数据

#在主服务器上重新建立数据库d1和d2以及t1和t2,可以在从服务器看到很快就会将这两个数据库同步过来

时间: 2024-12-14 20:10:08

mysql服务器(一)的相关文章

#2002 无法登录 MySQL 服务器

phpMyAdmin竟然无法登录了,输入用户名和密码后点击“执行”后一直报 “#2002 无法登录 MySQL 服务器”. 后来终于找到了一个解决办法,将 “phpMyAdmin/libraries”文件夹下的config.default.php文件中的 $cfg['Servers'][$i]['host'] = 'localhost'; 修改为 $cfg['Servers'][$i]['host'] = '127.0.0.1'; 就解决了. 一个MySQL客户可以两种不同的方式连接mysqld

Linux下安装配置MySQL服务器

一.安装环境 ============ OS:centos6.8 MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 安装目录:/usr/local/mysql57 用root用户安装. 二.安装步骤 ============ 1.解压安装包 [root]#cd /usr/local [root]#mv  /path/to/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  . [root]#tar -xzf mysq

命令行连接mysql服务器时 报Can't connect to local MySQL server through socket 'xxx.sock'错误

本来之前用的好好的mysql服务器,突然就报Can't connect to local MySQL server through socket 'xxx.sock'错误了 遇到该问题思路首先是:检查 my.cnf 中 socket 配置的路径及权限. 但是查看完 没发现路劲权限有问题,最后跑去另一台同时配置的服务器上看  发现/data/perconadata有一个/mnt/perconadata/mysql.sock的软连接 于是乎到问题机器上 cd /data/perconadata/ s

Linux服务篇之四:构建MySQL服务器

Linux服务篇之四:构建MySQL服务器  MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司, 目前属于Oracle公司,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 对应目前主流的LAMP架构来说,Mysql更是得到各位IT运维.DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始

mysql服务器(二)

mysql服务器(二) #从服务器同步完成后Position也为1810 #在主服务器新增一个ignoredb数据库,看一下从配置忽略将此数据库同步是否生效 #在主服务器新增ignoredb数据库和表t4,d4数据库和表t4 #可以看到从服务器已经将d4数据库同步过来,并且忽略同步ignoredb数据库 #主从服务器Positon点一致 4.主主同步 #待补充 5.一主多从 #待补充 6.集群 (1)lvs+keepallive+mysql #待补充 (2)lvs+heartbeat+drbd+

zabbix-3.2.4监控mysql服务器性能

环境:centos7已安装 zabbix-agent-3.2.4-2.el7.x86_64 zabbix-server-mysql-3.2.4-2.el7.x86_64 zabbix-web-3.2.4-2.el7.noarch zabbix-web-mysql-3.2.4-2.el7.noarch zabbix-release-3.2-1.el7.noarch zabbix-get-3.2.4-2.el7.x86_64 查看zabbix_agentd.conf配置文件: PidFile=/va

phpmyadmin连接MySQL服务器被拒绝

显示: phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.您应该检查配置文件中的主机.用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致. 原因: 可能是修改了MySQL的密码所致. 解决办法: 1.修改phpmyadmin 下的config.inc.php中的 $cfg['Servers'][$i]['password'] = '';修改密码对应的值: 2.修改$cfg['Servers'][$i]['auth_type'] = 'http'; //

zabbix之监控MySQL服务器(可用于主从架构)

穿件监控MySQL的自定义参数 在zabbix的agent端添加配置文件 # vim /etc/zabbix/mysql/.my.cnf  用于连接MySQL的配置文件,无需显示输入用户和密码 [client]host     = localhostuser     = rootpassword = 123456socket   = /usr/local/mysql/mysql.sock[mysql]host     = localhostuser     = rootpassword =123

Nagios 监控mysql服务器详细实现过程

1.NRPE介绍 NRPE是Nagios的一个功能扩展,它可在远程Linux/Unix主机上执行插件程序.通过在远程服务器上安装NRPE插件及Nagios插件程序来向Nagios监控平台提供该服务器的本地情况,如CPU负载,内存使用,磁盘使用等.这里将Nagios监控端称为Nagios服务器端,而将远程被监控的主机称为Nagios客户端. Nagios监控远程主机的方法有多种,其方式包括SNMP,NRPE,SSH,NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRPE(Nag