linux安装mysql

一.版本号

1.linux版本

Linux dz2 2.6.32-358.el6.x86_64

2.mysql版本

mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3.下载地址

https://dev.mysql.com/downloads/mysql/

 

二.创建用户


1.创建mysql用户

useradd mysql

2.给mysql用户添加密码

passwd mysql

3.添加mysql用户组,组id随意,但不能重复

groupadd -g 333 mysql

4.把mysql用户添加到mysql组中

gpasswd -a mysql mysql


三.查看是否有之前mysql的组件

1.查看是否有mysql组件或者其他的版本

npm -qa |grep -i mysql


 
2.如果有则通过以下命令删除

npm -e mysql-libs-5.1.66-2.el6_3.x86_64

如果不行可以在命令后面加上--nodeps

npm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps

3.使用以下命令来查看是否还有mysql相关目录,有则进行删除,注意先进入/目录再进行查找

cd /find -name mysql

4.通过rm -rf [目录名]删除查找到的目录即可
 

四.文件解压

1.解压文件

tar -zxf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

2.将解压后的文件放在刚创建的mysql用户目录下并更名为mysql-5.7.26

mv mysql-5.7.26-linux-glibc2.12-x86_64 /home/mysql/mysql-5.7.26

五.初始化安装(因为我的mysql不是安装在默认位置的,所以在初始化或者启动时要带上配置文件)

1.在/home/mysql目录下创建my.cnf文件

mkdir /home/mysql/my.cnf

2.通过vim /home/mysql/my.cnf编辑文件,并输入以下内容

[mysqld]
bind-address=192.168.25.151
port=3378
user=mysql
basedir=/home/mysql/mysql-5.7.26
datadir=/home/mysql/mysql-5.7.26/data
socket=/home/mysql/mysql-5.7.26/tmp/mysql.sock
log-error=/home/mysql/mysql-5.7.26/data/mysql.err
pid-file=/home/mysql/mysql-5.7.26/data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

3.保存退出
4.进入mysql-5.7.26目录下的bin目录

cd /home/mysql/mysql-5.7.26/bin

5.初始化

./mysqld --defaults-file=/home/mysql/my.cnf --basedir=/home/mysql/mysql-5.7.26/ --datadir=/home/mysql/mysql-5.7.26/data/ --user=mysql --initialize

6.查看mysql初始密码

vim /home/mysql/mysql-5.7.26/data/mysql.err


 
7.通过/home/mysql/mysql-5.7.26/bin/mysqld_safe文件启动mysql服务,&表示后台运行

./mysqld_safe --defaults-file=/home/mysql/my.cnf &

注意之后不要回车,重新打开一个连接窗口
8.连接数据库,要root用户,这里root用户是mysql中的root用户,和linux中的root用户没关系,不要弄混了

./mysql -uroot -p -S /home/mysql/mysql-5.7.26/tmp/mysql.sock

9.下面会要密码,输入从/home/mysql/mysql-5.7.26/data/mysql.err中拿到的初始密码即可
10.修改密码,并刷新

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;


 
11.退出连接

exit

12.关闭后台启动的数据库

mysqladmin -u root -p密码 -S /home/mysql/mysql-5.7.26/tmp/mysql.sock shutdown

或者

mysqladmin -u root -p -S /home/mysql/mysql-5.7.26/tmp/mysql.sock shutdown

然后输入上面设置的密码即可

13.修改远程登陆权限
root账户中的host项是localhost表示该账号只能进行本地登录,我们需要修改权限,输入命令(远程登录):

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

修改权限。%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,或者可以修改为具体的端口号

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;

六.一些权限操作

注意:需要连接数据库之后才能操作

1.添加用户

//只允许指定ip连接

create user '新用户名'@'localhost' identified by '密码';

//允许所有ip连接(用通配符%表示)

create user '新用户名'@'%' identified by '密码';

2.为用户授权

//基本格式如下

grant all privileges on 数据库名.表名 to '新用户名'@'指定ip' identified by '新用户密码' ;

//示例

//允许访问所有数据库下的所有表

grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' ;

//指定数据库下的指定表

grant all privileges on test.test to '新用户名'@'指定ip' identified by '新用户密码' ;

3.设置用户操作权限

//设置用户拥有所有权限也就是管理员

grant all privileges on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;

//拥有查询权限

grant select on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;

//其它操作权限说明,select查询 insert插入 delete删除 update修改

//设置用户拥有查询插入的权限

grant select,insert on *.* to '新用户名'@'指定ip' identified by '新用户密码' WITH GRANT OPTION;

//取消用户查询的查询权限

REVOKE select ON what FROM '新用户名';

4.删除用户

DROP USER username@localhost;

5.修改后进行刷新

FLUSH PRIVILEGES;

七.主从同步

mysql主要是开启binlog来实现主从同步的,下面是操作步骤

这里一台机器用了不同端口来开启mysql(不同机器之间是一样的操作)

192.168.25.151:3307-master
192.168.25.151:3308-slave

1.修改master(3307)端口的mysql服务

(1).修改192.168.25.151:3307-master里的my.cnf文件

[mysqld]

server-id=1 #节点id,master和slave的server-id确保唯一

bind-address=192.168.25.151

port=3307 #端口号

user=mysql

basedir=/home/mysql/mysql_3307

datadir=/home/mysql/mysql_3307/data

socket=/home/mysql/mysql_3307/tmp/mysql.sock

log-error=/home/mysql/mysql_3307/data/mysql.err

pid-file=/home/mysql/mysql_3307/data/mysql.pid

#character config

character_set_server=utf8mb4

symbolic-links=0

explicit_defaults_for_timestamp=true

#开启binlog 用于主从同步

log-bin = mysql-bin #开启mysql的binlog日志功能

sync_binlog = 1 #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全

binlog_format = mixed #binlog日志格式,mysql默认采用statement,建议使用mixed

expire_logs_days = 7 #binlog过期清理时间

max_binlog_size = 100m #binlog每个日志文件大小

binlog_cache_size = 4m #binlog缓存大小

max_binlog_cache_size= 512m #最大binlog缓存大

binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

(2).带着my.cnf配置文件重启mater(3307)端口的mysql

./mysqld_safe --defaults-file=/home/mysql/mysql_3307/my.cnf &

(3).连接mater(3307)端口的mysql

./mysql -uroot -p123456 -S /home/mysql/mysql_3307/tmp/mysql.sock

(4).最好创建个普通用户用于主从同步,这里为了方便直接用root用户(指的是mysql的root用户不是linux的),普通用户操作一样,如果不同机器的话,创建普通用户要给slave(3308)机器开启远程访问权限,不然会连接不上

(5).查看master的状态,记住binlog的File路径,这里没有绝对路径,绝对路径一般在mysql/data目录下,我的是在/home/mysql/mysql_3307/data/mysql-bin.000001下,在自己配置的data目录下,如果不是默认的data目录,要记住这个绝对路径,不然下面的操作可能会出错,还有记住Position参数

show master status;

2.修改slave(3308)端口的mysql服务

(1).修改192.168.25.151-slave的my.cnf配置文件

[mysqld]

server-id=2 #id要唯一

bind-address=192.168.25.151

port=3308 #端口号

user=mysql

basedir=/home/mysql/mysql_3308

datadir=/home/mysql/mysql_3308/data

socket=/home/mysql/mysql_3308/tmp/mysql.sock

log-error=/home/mysql/mysql_3308/data/mysql.err

pid-file=/home/mysql/mysql_3308/data/mysql.pid

#character config

character_set_server=utf8mb4

symbolic-links=0

explicit_defaults_for_timestamp=true


#binlog 用于主从同步

log-bin=mysql-bin

relay-log = mysql-relay-bin

(2).带着my.cnf配置文件重启mater(3307)端口的mysql

./mysqld_safe --defaults-file=/home/mysql/mysql_3308/my.cnf &

(3).连接mater(3307)端口的mysql

./mysql -uroot -p123456 -S /home/mysql/mysql_3308/tmp/mysql.sock

(4).然后输入以下命令

CHANGE MASTER TO

MASTER_HOST = '192.168.25.151',

MASTER_USER = 'root',

MASTER_PASSWORD = '123456',

MASTER_PORT = 3307,

MASTER_LOG_FILE='/home/mysql/mysql_3307/mysql-bin.000001',

MASTER_LOG_POS=463,

MASTER_RETRY_COUNT = 60,

MASTER_HEARTBEAT_PERIOD = 10000;

主要参数说明:

MASTER_HOST:master主机ip

MASTER_USER :连接master的用户名

MASTER_PASSWORD = '123456',

MASTER_PORT = master主机端口

MASTER_LOG_FILE:要和master的binlog的路径一致,因为我的mysql配置不在默认位置,所以我写的绝对路径,不然直接写文件名Salve_IO_Running是为NO的。

MASTER_LOG_POS:要和上面的Position一致

(5).之后输入

start slave;

如果之前开启了slave,要先关闭slave,命令为stop slave;

(6).查看slave状态

show slave status \G

Slave_IO_Running和Slave_SQL_Running都为Yes时,主从配置成功,不然主从设备不能同步

(7).然后自己在master机器上,创建数据库或者表或者insert插入语句,看slave机器是否能同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qwer785589

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值