MYSQL数据库部署和安装
首先准备安装包
在MySQL官方网站下载所需要的版本安装包 本次部署的是mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz 将安装包放在Linux系统 /usr/local 目录下
MySQL官方网站 MySQL官网
卸载系统自带的mariaDB (如果有)
查询已安装的Mariadb,如果有安装,卸载之
rpm -qa | grep mariadb
yum -y remove mariadb-server-5.5.56-2.e17.x86_64
yum -y remove mariadb-5.5.56-2.e17.x86_64
yum -y remove mariadb-devel-5.5.56-2.e17.x86_64
yum -y remove mariadb-libs-5.5.56-2.e17.x86_64
解压MYSQL安装包
将上面准备好的MySQL安装包解压,并重命名为mysql
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
创建MYSQL用户和用户组
首先使用 id mysql
命令查看是否存在mysql用户
如果存在,则使用命令 userdel mysql
将用户删除
然后创建mysql用户和用户组
groupadd mysql
useradd -g mysql mysql
于此同时新建 /user/local/mysql/data
目录,后续备用
修改MYSQL目录的归属用户
首先进入到mysql目录下chown -R mysql:mysql ./
准备MySQL的配置文件
在/etc
下新建my.cnf
文件vi /etc/my.cnf
在vi编辑器中,按下i键进入编辑模式,写下如下简化配置:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
同时使用如下命令创建/var/lib/mysql
目录,并修改权限:
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
正式开始安装mysql
执行如下命令正式开始安装:
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
安装如果出现问题
root@bigdata-159:/usr/local/mysql# ./bin/mysqld -- defaults-file=/etc/my.cnf --initialize --user=mysql
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
[root@example.com data]# yum install -y libaio //安装后在初始化就OK了
注意:把上面打印出来的密码复制保留,这是root用户的密码,后面首次登陆需要使用
复制启动脚本到资源目录
执行如下命令复制:
cp ./support-files/mysql.server /etc/init.d/mysqld
并修改/etc/init.d/mysqld
,修改其basedir和datadir为实际对应目录
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
设置mysql系统服务并开启自启
首先增加mysqld服务控制脚本执行权限:
chmod +x /etc/init.d/mysqld
同时将mysqld服务加入到系统服务中
chkconfig --add mysqld
最后检查mysqld服务是否已经生效即可
chkconfig --list mysqld
出现下图的打印就说明mysqld服务已经生效了,在2,3,4,5 运行级别随系统启动而自启动,以后可以直接使用service 命令控制mysql的暂停
启动mysqld
直接执行:
service mysqld start
出现如下命令说明mysql启动成功
将mysql的bin目录加入path环境变量
这样方便以后可以在任意目录都可以使用mysql提供的命令
编辑.bash_profilevi ~/.bash_profile
文件,在文件末尾处追加如下的信息:export PATH=$PATH:/usr/local/mysql/bin
最后执行如下命令使环境变量生效source ~/.bash_profile
首次登录MySQL
以root账号登录mysql,使用上文安装完成提示的密码进行登入mysql -u root -p
按下回车
接下来修改root账号密码
在mysql的命令行执行如下命令就可以了,密码换成自己想用的即可
mysql>alter user user() identified by "111111";
mysql>flush privileges;
设置远程主机登录
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
最后利用NAVICAT等工具进行测试即可
1、Linux CentOS一般作为服务器使用,因此,MySQL服务器应该随机自启动。查看开机自启动的服务使用chkconfig命令,如下:
chkconfig --list
或是只查看MySQL服务
chkconfig --list mysqld
可以看到mysql的2~5为on,说明mysql服务会随机器启动而自动启动。
2、配置MySQL的开机自动启动
chkconfig --add mysql
chkconfig mysqld on
3、命令启动/关闭MySQL实例
service mysqld start/stop
/etc/init.d/mysqld start/stop
4、命令关闭MySQL
mysqladmin -p -u root shutdown
5、检查mysql是否真正的启动
方法一:查询端口
netstat -tulpn
MySQL监控的是TCP的3306端口,图中命令操作结果的最后一行即是MySQL服务在运行中。
方法二:查询进程
ps -ef | grep mysqld
如果有mysqld_safe和mysqld两个进程,说明MySQL服务当前在启动状态。
通过 rpm 安装包的方式按照
1 上传 rpm 安装包到Linux 系统
2 解压安装包到 /usr/local/mysql 目录
3 按照如下步骤按照
如果出现如下错误
错误:依赖检测失败:
/usr/bin/perl 被 mysql-community-server-5.7.25-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-5.7.25-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-5.7.25-1.el7.x86_64 需要
则安装 yum install -y perl-Module-Install.noarch
安装完成之后
启动 MySQL
systemctl status mysql 查看 MySQL 服务状态
systemctl start mysqld 启动 MySQL 服务
systemctl enable mysqld 开机启动 MySQL 服务
netstat -tunlp 查看启动的服务
netstat -tunlp | grep mysql
ps -ef | grep mysql 查看 MySQL 进程
登录 MySQL 数据库 ,查看临时密码
cat /var/log/mysqld.log 查看文件内容
cat /var/log/mysqld.log | grep password 查看文件内容中包含 password 的行信息
登录 MySQL,修改密码,开放访问权限
mysql -uroot -p 登录mysql (使用临时密码)
进入 MySQL 客户端后 /
修改密码
set global validate_password_length=4; # 设置密码最低位数为4位
set global validate_password_policy=LOW; # 设置密码安全等级低,便于修改简单密码
set password=password('1234'); #将密码设置为 1234
# 开启访问权限
grant all on *.* to 'root' @'%' identified by '1234';
flush privileges;
最后使用 navicat 等工具测试连接即可
MySQL 主从复制 配置
提前准备好两台服务器,分别安装 MySQL 服务并启动成功
- 主库 Master 192.168.141.133
- 从库 Slave 192.168.141.135
配置 - 主库 Master
第一步:修改 MySQL 数据库配置文件 /etc/my.cnf
[mysqld]
log-bin=mysql-bin #[必须] 启用二进制日志
server-id=133 #[必须] 服务器唯一 id
第二步:重启MySQL 服务
systemctl restart mysqld
第三步:登录MySQL 客户端,执行下面sql
GRANT REPLICATION SLAVE ON . to 'xiaoming'@'%' IDENTIFIED by 'Root@123456';
作用: 创建一个用户 xiaoming 密码为 Root@123456,并且给xiaoming 用户授予 replication slave 权限,常用于建立复制时所需要用到的用户权限,也就是slave 必须被 master 授权具有该权限的用户,才能通过该用户复制
第四步:登录 MySQL 数据库,执行下面的sql 记录下结果中 file 和 position 的值
show master status;
上面的sql 作用是查看 master 的状态,执行完此 sql 后就不要执行任何操作了
配置 - 从库 Slave
// 注意 : 如果该数据库是虚拟机克隆的机器上的数据库,那么需要修改 数据库的 uuid ,保证主从复制不出错误
- 首先查找到 mysql 的安装地址 show variables like 'datadir';
- 通过 MySQL 生成一个uuid 机型记录等会用于修改 select uuid();
- 进入 datadir 目录 修改 auto.cnf 文件 vi /var/lib/mysql/auto.cnf
- 最后重启MySQL 服务 systemctl restart mysqld
第一步: 修改MySQL数据库的配置文件 /etc/my.cnf
[mysqld]
server-id=135 #必须 服务器唯一 ID
第二步:重启 MySQL 服务
systemctl restart mysqld
第三步:登录MySQL数据库,执行下面sql
CHANGE MASTER TO master_host='192.168.141.133',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=441;
start slave;
如果有 slave在运行 ,则 stop slave 停止 slave
最后查看slave 的 状态;show slave status;
Slave_IO_State = Wating for master
Slave_IO_Running = Yes
Slave_SQL_Running = Yes
这三个状态为上述则说明安装成功