前言

在之前的博客中,有过几篇都写了关于mysql在linux下的搭建教程,可能以后还会再写,但是又不想重复在写, 于是便想单独将此抽出来,单独写成一篇博客,并详细记录一些安装过程以及遇到的问题解决办法。顺便也将MySql的主从搭建教程也写在一起,方便以后查阅。

一、MySql安装

在安装MySql之前,查看是否以及安装过MySql,如果已经安装,但是不符合要求的话就卸载。

1,查找以前是否装有mysql

先输入:

rpm -qa|grep -i mysql

查看是否安装了mysql

2,停止mysql服务、删除之前安装的mysql

输入:

ps -ef|grep mysql

删除命令

输入:

rpm -e –nodeps 包名



如果提示依赖包错误,则使用以下命令尝试

rpm -ev 包名 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:

rpm -e --noscripts 包名

3、查找并删除mysql目录

查找结果如下:

find / -name mysql

删除对应的mysql目录

具体的步骤如图:查找目录并删除



注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

4、再次查找机器是否安装mysql

rpm -qa|grep -i mysql

Mysql有两种安装模式,可自行选择。

1,yum安装

首先查看mysql 是否已经安装

输入:

rpm -qa | grep mysql

如果已经安装,想删除的话

输入:

普通删除命令:

rpm -e mysql

强力删除命令:

rpm -e --nodeps mysql

依赖文件也会删除

安装mysql

输入:

yum list mysql-server

如果没有,则通过wget命令下载该包

输入:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

下载成功之后,再输入命令安装

yum install mysql-server

在安装过程中遇到选择输入y就行了



安装成功后,输入 service mysqld start 启动服务

输入:

mysqladmin -u root -p password '123456'

来设置密码

输入之后直接回车(默认是没有密码的)

然后再输入

mysql -u root -p



通过授权法更改远程连接权限

输入: grant all privileges on . to 'root'@'%' identified by '123456';

注:第一个’root’是用户名,第二个’%’是所有的ip都可以远程访问,第三个’123456’表示 用户密码 如果不常用 就关闭掉

输入:flush privileges; //刷新

在防火墙关闭之后,使用SQLYog之类的工具测试是否能正确连接

2,编译包安装

Mysql文件准备

将下载好的mysql安装包上传到linux服务器

解压mysql解压包,并移动到/usr/local目录下,重命名为mysql。

命令:

tar -xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 /usr/local
cd /usr/local
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql

注: mysql默认的路径是就是/usr/local/mysql ,如果安装的地方更改,需要更改相应的配置文件。

安装mysql

切换到mysql的目录 /usr/local/mysql

输入:

 ./scripts/mysql_install_db --user=mysql



成功安装mysql之后,输入

service mysql start 或 /etc/init.d/mysql start



查看是否启动成功

输入:

 ps -ef|grep mysql

切换到 /usr/local/mysql/bin 目录下

设置密码

mysqladmin -u root password '123456'入mysql

输入:

mysql -u root -p

设置远程连接权限

输入:

grant all privileges on *.* to 'root'@'%' identified by '123456';

然后输入:

flush privileges;

说明: 第一个’root’是用户名,第二个’%’是所有的ip都可以远程访问,第三个’123456’表示用户密码 如果不常用就关闭掉。

使用本地连接工具连接测试

二、MySql搭建遇到的错误解决办法

1,mysql离线安装出现:Can't change to run as user 'mysql' ; Please check that the user exists!

原因:没有该用户。

解决办法:创建该用户!

例如:

添加用户:

groupadd -g 315 mysql

用户加入mysql:

useradd -u 315 -g mysql -d /usr/local/mysql -M mysql

再次输入

 ./scripts/mysql_install_db --user=mysql

成功!

2,安装完mysql之后,输入service mysql start 提示 mysql: unrecognized service。

问题原因: 是因为/etc/init.d/ 不存在 mysql 这个命令,所以无法识别。

解决办法:

1.首先查找mysql.server文件在哪

输入:

find  /  -name mysql.server

2.将mysql.server 复制到/etc/init.d/目录下,并重命名为mysql或mysqld

输入:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

3.测试是否可以使用该命令

输入:

service mysql status

service mysqld status

3,mysql数据导入报错

错误:Got a packet bigger than‘max_allowed_packet’bytes的问题

2个解决方法:

1.临时修改:mysql>set global max_allowed_packet=524288000;修改 #512M

2.永久修改: 编辑my.cnf, 在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):

max_allowed_packet=10M

成功之后重启mysql。

4,mysql数据库关于max_allowed_packet的问题

主要是mysql的JDBC连接限制了最大包长度1024B,即1KB

查询当前数据库的包长度显示: show VARIABLES like '%max_allowed_packet%';

修改此参数

解决方案一(临时): 进入msyql

输入:

set global max_allowed_packet = 2*1024*10

更改最大值

解决方案二(永久):修改mysql.cnf(windows下my.ini),在[mysqld]段或者mysql的server配置段 进行修改。

max_allowed_packet = 20K。

修改成功后,重启mysql。

三、MySql 用到的一些命令

1.查看mysql连接数

  SHOW FULL PROCESSLIST;

2.查看mysql的配置

show variables like "%innodb%";

3.查看mysql事件是否开启

show variables like 'event_scheduler';

4.查看mysql锁的状态

是否锁表:

 SHOW OPEN TABLES WHERE In_use > 0;
SHOW INNODB STATUS/G;

5.查看mysql data的存放位置

SHOW VARIABLES LIKE '%datadir%'

6.查看mysql 的超时时间设置

show variables like '%timeout%';

四、MySql修改密码

1,知道原来的myql数据库的root密码;

在终端命令行修改

输入

 mysqladmin -u root -p password "新密码"

回车

 Enter password: 【输入原来的旧密码】

登录mysql系统修改

进入mysql

输入:

 mysql -uroot -p 回车 Enter password: 【输入原来的密码】

进入之后

输入:

use mysql;
update user set password=password("新密码") where user='root';
flush privileges;

然后使用刚才输入的新密码即可登录。

2,不知道原来的myql的root的密码;

首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。 类似于安全模式登录系统。

需要先停止mysql服务

service mysql stop

/etc/init.d/mysql stop

注:如果mysql不行,就用mysqld

当提示mysql已停止后进行下一步操作

在终端命令行输入:

mysqld_safe --skip-grant-tables &

输入mysql登录mysql系统

use mysql;
UPDATE user SET password=password("新密码") WHERE user='root';
flush privileges;
exit;

重新启动mysql服务

这样新的root密码就设置成功了。

五、MySql主从搭建

主从搭建参考:http://www.cnblogs.com/phpstudy2015-6/p/6485819.html#_label2

说明:搭建MySql的主从时,如复制名称出现了错误,那么尝试使用用手动输入命令。

1,事前准备

信息

操作系统:CentOS6.8

Mysql:5.6

IP:192.169.2.156 (主),192.169.2.98(从)

确保MySql已经成功安装 !

2,配置更改

更改mysql中的my.cnf文件

添加如下:

主(Master):


#任意自然数n,只要保证两台MySQL主机不重复就可以了。
server-id=1
#开启二进制日志
log-bin=mysql-bin
#步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_increment=2
#起始值。一般填第n台主MySQL。此时为第一台主MySQL
auto_increment_offset=1
#忽略指定的数据库
binlog-ignore=mysql
binlog-ignore=information_schema
#要同步的数据库(多个可以使用逗号隔开),默认所有库
replicate-do-db=DBTEST

从(Slave):

server-id=2
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=DBTEST

更改完配置之后重启!

3,主从配置

主(Master)

master新建slave用户

进入MySql之后输入:

grant replication slave on *.* to 'slave_account'@'192.169.2.98' identified by '123456';

说明: 设置一个slave_account用户拥有REPLICATION SLAVE权限,可以访问的ip为192.169.2.98,并设置密码为123456。

如果想某个网段的服务器都能登录,可以使用192.168.2.% 。表示192.168.2.0-192.168.2.255的Server都可以用slave_account用户登陆主服务器。

如果想所有的服务器都能登录,那么可以设置为 % 。

然后输入:

flush privileges;

查看信息,并记录下文件名称和分区ID

SHOW MASTER STATUS;

从(Slave):

获取master的授权信息之后,输入slave的授权命令:

change master to master_host='192.169.2.156',master_user='slave_account',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=427;

确保成功执行!

4,主从测试

从(Slave):

开始主从复制:

输入:

START SLAVE;

查看主从复制是否配置成功:

SHOW SLAVE STATUS\G

说明:当看到Slave_IO_Running: YES、Slave_SQL_Running: YES 说明成功,否则失败。

主(Master)

首先创建一个DBTEST数据库,然后创建test表,并插入两条数据。

这里为了看起来更加明朗,我是用的是SQLYog 工具进行操作的。

进入mysql执行如下脚本:

CREATE DATABASE`DBTEST`;
USE `DBTEST`;
CREATE TABLE `test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; insert into `test`(`id`,`name`) values (1,'张三'),(2,'李四');

查看

输入:

select * from test;

从(Slave):

查看

输入:

select * from test;

从数据库并没有执行脚本,但是信息一致,说明成功同步了。

继续测试,在主(master)删除一条数据,查看从的数据。

主(Master)

从(Slave):

可以看到已经完全同步了!

那么本篇教程就到此结束了,谢谢阅读!

Linux CentOS 安装MySql以及搭建MySql主从复制的更多相关文章

  1. linux CentOS 安装 nginx+tomcat+java+mysql运行环境

    本文介绍了CentOS7 64 Java,Tomcat,MySQL,Maven热部署等服务器环境的搭建过程. 服务器: 已经将所需要的工具(Xshell,Xftp.FileZilla等sftp上传工具 ...

  2. 阿里云服务器Linux CentOS安装配置(三)yum安装mysql

    阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...

  3. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  4. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  5. 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器

    阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 我在阿里云购买的服务器配置 CPU:1核 内存:2G 系统盘:40G 公共镜像:CentOS 6.5 64位 公网带宽:1Mbps ...

  6. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  7. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  8. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  9. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  10. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

随机推荐

  1. Asp.net core 2.0.1 Razor 的使用学习笔记(四)

    ASP.net core 2.0.1 中 asp.net identity 2.0.1 的基本使用(三)—用户注册 一.修改用户注册 1.打开Pages文件夹>Account>Regist ...

  2. Java细节

    native关键字用法 native是与C++联合开发的时候用的!java自己开发不用的! 使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL, ...

  3. Mysql了解及安装

    1.数据库由两部分来构成的 打开一个连接工具,用工具给MySQL发送命令,实际上是给数据库当中的服务下的命令,在服务当中解析命令,最终将命令转化成对物理库上文件IO的操作. 所以数据库的安装位置有两个 ...

  4. C#基础(七)虚函数

    若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法.虚方法与非虚方法的最大不同是,虚方法的实现可以由派生类所取代,这种取代是通过方法的重写实现的(以后再讲)虚方法的特点:虚方法前不允 ...

  5. C#基础(四)--值类型和引用类型,栈和堆的含义

    本文主要是讨论栈和堆的含义,也就是讨论C#的两种类据类型:值类型和引用类型: 虽然我们在.net中的框架类库中,大多是引用类型,但是我们程序员用得最多的还是值类型. 引用类型如:string,Obje ...

  6. 04_Python Data Structures

    Python数据结构 数据结构:数据个体的存储 和 数据个体与个体之间关系的存储. Python中有:1.序列 2.映射类型 3.无序集合 序列:成员有序排列.通过下标偏移量进行访问.元组.字符串.列 ...

  7. KBEngine游戏服务器(一)——引擎环境配置

    系统:Win10 版本:Visual Studio 2013(也就是vs120) kbengine:v1.0.0 MySQL:5.7 MySQL Workbench :6.3 一.下载kbengine ...

  8. Spark Streaming编程指南

    Overview A Quick Example Basic Concepts Linking Initializing StreamingContext Discretized Streams (D ...

  9. Go笔记-标准库的介绍

    [unsafe]包含了一些打破Go语言“类型安全”的命令,一般的程序中不会被使用,可用在C/C++程序的调用中 [syscall]底层的外部包,提供了操作系统底层调用的基本接口 [os/exec]提供 ...

  10. Jmeter_实现操作postgresql数据库

    [环境] ①Jmeter版本:3.2,JDK:1.8: ②postgresql驱动包postgresql-9.3-1103.jdbc4,将该jar包置于..\apache-jmeter-3.2\lib ...