linux mysql 多个实例_MySQL(一)—Linux环境下MySQL单实例和多实例的安装

一、准备环境

1、机器准备:linux系统服务器一台,本次以CentOS为例。

2、安装包准备:mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz(可通过MySQL官网下载)。

3、将安装包上传至linux服务器上,并解压(tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz)。

4、解压目录中的INSTALL-BINARY文件描述了MySQL的安装方法,但有些步骤无法成功,所以现总结安装步骤如下。

二、MySQL单实例安装

1、由于Centos系统在安装时会在etc目录下默认配置my.cnf文件,所以需要将此目录删除或重命名。

mv my.cnf my.cnfback

2、添加mysql用户组

groupadd mysql

3、添加mysql用户

useradd -r -g mysql mysql

4、进入mysql 压缩包目录

cd /usr/local

5、创建软链接

ln -s mysql-5.7.9-linux-glibc2.5-x86_64 mysql

6、进入mysql目录

cd mysql

7、新建mysql-files和data目录

mkdir mysql-files

mkdir data

8、给当前用户和用户组赋全部权限

chmod 770 mysql-files

9、将目录所有者改为mysql

chown -R mysql .

10、将目录所有用户组改为mysql

chgrp -R mysql .

11、初始化mysql(5.7.6以上版本使用此命令,其他版本见INSTALL-BINARY文件),初始化时会给出默认密码见下图。

bin/mysqld --initialize --user=mysql

12、设置加密链接(# MySQL 5.7.6 and up)

bin/mysql_ssl_rsa_setup

13、将拥有者改为root

chown -R root .

14、将文件的拥有者改为mysql

chown -R mysql data mysql-files

15、安全启动mysql服务

bin/mysqld_safe --user=mysql &

16、验证是否启动成功

ps -ef |grep mysqld

f73acc6048fd94c9db52dd171c07078c.png

配置环境变量

1.vi /etc/profile

2.在文件内添加:export PATH=/usr/local/mysql/bin:$PATH

3.关闭文件后,执行命令,使环境变量生效:source /etc/profile

配置开机启动

1、cp support-files/mysql.server /etc/init.d/mysql.server

2、chkconfig mysql.server on

3、chkconfig --list

登录并设定密码

1、mysql -uroot -p'vdly)iIme4?2'; # vdly)iIme4?2 为之前初始化时的初始密码

2、设定密码:set password = xxxx

三、MySQL多实例安装

1、在单实例的基础上,新建/etc/my.cnf文件,内容如下

[mysqld]

sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

log = /var/log/mysqld_multi.log

# service stop need username and password

user=xxx

pass=xxx

[mysqld3307]

server-id = 11

socket = /tmp/mysql.sock1

port = 3307

datadir = /data1

user = mysql

performance_schema = off

innodb_buffer_pool_size = 32M

skip_name_resolve = 1

log_error = error.log

pid-file = /data1/mysql.pid1

[mysqld3308]

server-id = 12

socket = /tmp/mysql.sock2

port = 3308

datadir = /data2

user = mysql

performance_schema = off

innodb_buffer_pool_size = 32M

skip_name_resolve = 1

log_error = error.log

pid-file = /data2/mysql.pid2

2、创建数据目录并初始化

1、根据配置文件内容,创建数据目录

cd /usr/local/mysql

mkdir data1

mkdir data2

2、赋权

chown mysql.mysql data{1..2}

3、初始化

mysqld --initialize --user=mysql --datadir=/data1

mysqld --initialize --user=mysql --datadir=/data2

3、配置开机启动

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

chkconfig mysqld_multid on

4、启动服务并验证

1、启动服务

mysqld_multi start

(mysqld_multi stop 关闭服务,须在配置文件中设置用户名密码)

2、验证是否启动

mysqld_multi report

3、链接并修改密码

mysql -u root -S /tmp/mysql.sock1 -p -P3307;

set password = 'xxxxx';

flush privileges;

exit;

mysql -u root -S /tmp/mysql.sock2 -p -P3308;

set password = 'xxxxx';

flush privileges;

exit;

四、MySQL授权

为了防止删除跑路,各数据库都有自己的权限控制,MySQL也不例外。不过,mysql授权用户不仅仅是指用户标识,而是赋予“用户+IP”的。5.7之后引入了“角色”概念,但此概念和其他数据库不同,MySQL官方把它叫做“Role like”。

MySQL 授权命令简单总结如:grant 权限 on 数据库对象 to 用户。

1、授权给用户某数据库所有表增删改查的权限

grant select on db.* to user@'%';

grant insert on db.* to user@'%';

grant update on db.* to user@'%';

grant delete on db.* to user@'%';

grant select, insert, update, delete on db.* to user@'%'

2、查看某用户拥有哪些权限

show grants for 'user'@'%'

Mysql中涉及到权限的表(mysql数据库下)

mysql.user

User的一行记录代表一个用户标识

mysql.db

db的一行记录代表对数据库的权限

mysql.table_priv

table_priv的一行记录代表对表的权

mysql_column_priv

column_priv的一行记录代表对某一列的权限

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值