1.下载mysql安装包(也可以去官方网站下载解压)
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2.解压安装包
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
3.移动
解压后的mysql目录,将当前目录下的解压包移动到/usr/local/目录下,并改名为mysql
mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
4.添加用户组和用户
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
#查看系统用户是否存在mysql
cat /etc/passwd
5.切换到/usr/local/mysql目录,安装
#切换目录
cd /usr/local/mysql/
#安装
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
6.复制mysql服务到启动目录下,并授权
#复制
cp support-files/mysql.server /etc/init.d/mysqld
#授权
chmod 755 /etc/init.d/mysqld
7.复制mysql配置文件到配置文件最优先读取位置
#查看mysql配置文件读取优先级顺序,最前面的路径最优先读取,找不到则往后读
/usr/local/mysql/bin/mysql --verbose --help|grep -A 1 'Default options'
#复制
cp support-files/my-default.cnf /etc/my.cnf
8.修改启动脚本
vi /etc/init.d/mysqld
#修改项:
basedir=
/usr/local/mysql/
datadir=
/usr/local/mysql/data
9.启动mysql服务
service mysqld start
10.测试连接
bin/mysql -uroot
能进入数据库说明连接成功,数据库已经安装完成!退出mysql(exit;)下面进行一些配置
11.修改环境变量,添加mysql环境变量
export PATH=$PATH:/usr/local/mysql/bin
设置变量的三种方法
1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑li用户目录(/home/li)下的.bashrc
$ vi /home/li/.bashrc
添加如下内容:
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
注:修改文件后要想马上生效还要运行$ source /home/li/.bashrc不然只能在下次重进此用户时生效。
3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
如:export PATH=$PATH:/usr/local/mysql/bin
12.设置mysql的远程访问
(1)打开端口3306的防火墙
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中
(2)设置数据库远程访问权限,先登录mysql数据库
#授权并创建用户
grant all privileges on *.* to 'myuser' @'%' identified by '123456';
#刷新权限
flush privileges;
#查询用户是否存,是否授权,\G为换行显示命令
select * from mysql.user\G;
'all privileges ':所有权限 也可以写成 select ,update等。
'myuser' 用户,如果没有则自动创建
*.* 所有库的所有表 如 databasename.*。
% 数据库所在的IP,%标识所有IP。
identified by ‘密码’ 表示通过密码连接
复制原理:
Mysql中有一种日志叫做bin日志(二进制日志)。这个日志会记录下所有修改了数据库的SQL语句(insert,update,delete,ALTER TABLE,grant等等)。
主从复制的原理其实就是把主服务器上的BIN日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。
主从复制配置过程:
主节点:
启用二进制日志。
为当前节点设置一个全局唯一的server_id。
创建有复制权限的用户账号 REPLIACTION SLAVE ,REPLIATION CLIENT。
从节点:
启动中继日志。
为当前节点设置一个全局唯一的server_id。
使用有复制权限的用户账号连接至主节点,并启动复制线程。
1.如上操作在两个服务器安装mysql,其中主服务器必须设置远程访问权限
2.配置主节点
进入主节点服务器然后打开my.cnf配置文件
vi /etc/my.cnf
添加:log-bin = mysql-bin
添加:binlog_format=mixed
添加 :server-id =1
添加:innodb-file-per-table =ON
添加:skip_name_resolve=ON
保存后重启mysql服务,重连mysql
service mysqld restart
3.在主节点创建从节点访问主节点权限的用户
grant all privileges on *.* to slave@'从节点IP' identified by '123456';
至此,主节点配置完成!
查看二进制日志log_bin是否开启:show global variables like '%log%';
查看主节点server_id:show global variables like '%server%';
查看主节点二进制日志列表:show master logs;
4.从节点配置
vi /etc/my.cnf
重启从节点数据库
service mysqld restart
5.从节点登陆mysql
查看二进制日志log_bin是否开启:show global variables like '%log%';
查看主节点server_id:show global variables like '%server%';
6.在从节点配置访问主节点的参数信息
注意:主节点的二进制文件一定要是二进制列表中的最后一个二进制文件。
CHANGE MASTER TO MASTER_HOST='主节点IP',MASTER_USER='slave',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=407;
注意:slave为刚才在主节点创建的用户
至此,从节点配置完成!
查看从节点状态:show slave status\G;
此时未启动从节点复制线程,因此两个线程都未启动,启动复制线程:start slave;
在查看从节点状态,都是yes
7.测试
在主节点任意增删改操作,从节点都同步复制!