基于centos7.9安装mysql5.6

1.环境安装及安装包的获取及解压

#1检查卸载当前mysql相关的卸载掉
#清理
#1 /etc/profile 文件中的mysql变量删除
#2.停止当前环境中的msyql服务

#2.安装依赖环境
yum install  ncurses-devel libaio-devel gcc make cmake wget gcc-c++ git openssl-devel  autoconf  libaio* tree -y

#3.创建存放安装包的目录,下载获取二进制代码包
mkdir -p /home/fuyonghai/tools && cd /home/fuyonghai/tools

wget https://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz


#4.检查是否正确安装
[root@mysql-master ~]# rpm -qa ncurses-devel libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
ncurses-devel-5.9-14.201530511.el7_4.x86_64

#5.创建mysql用户,避免使用root用户权限过大造成系统潜在隐患
[root@mysql-master ~]# useradd -s /sbin/nologin -M mysql
[root@mysql-master ~]# id mysql
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)
[root@mysql-master ~]#

#6.准备好多实例的数据目录
mkdir -p /mysql/3306
[root@mysql-master mysql]# tree /mysql
/mysql
├── 3306


# 7.解压缩安装包,-C 指定目录解压缩
mkdir /application/
tar -zxvf mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz  -C /application/

#8.查看mysql的安装包信息
[root@mysql-master tools]# cd /application/
[root@mysql-master application]# ls -lth
total 0
drwxr-xr-x. 13 root root 191 Jul 18 18:02 mysql-5.6.49-linux-glibc2.12-x86_64

2.准备二进制mysql运行所需环境

#3306配置文件
vim /mysql/3306/my.cnf

[client]


[mysqld]
port=3306
socket=/mysql/3306/mysql.sock
basedir=/application/mysql-5.6.49-linux-glibc2.12-x86_64/
datadir=/mysql/3306/data
log-bin=/mysql/3306/mysql-bin
server-id=1

[mysqld_safe]
log-error=/mysql/3306/mysq1_3306_error.log
pid-file=/mysql/3306/mysqld_3306.pid

准备启停脚本
vim /mysql/3306/mysqld_3306

port=3306
mysql_user="mysql"
Cmdpath="/application/mysql-5.6.49-linux-glibc2.12-x86_64/bin/"
mysql_sock="/mysql/$port/mysql.sock"
mysqld_pid_file_path=/mysql/${port}/mysqld_${port}.pid

start(){
	if [ ! -e "$mysql_sock" ];then
		printf "starting MySQL...\n"
		/bin/sh ${Cmdpath}/mysqld_safe --defaults-file=/mysql/${port}/my.cnf --pid-file=$mysqld_pid_file_path 2>&1 > /dev/null &
		sleep 3
	else
		printf "MySQL is running...\n"
		exit 1
	fi
}	

stop(){
	if [ ! -e "$mysql_sock" ];then
		printf "MySQL is stopped...\n"
		exit 1
	else
		printf "stoping MySQL...\n"
		mysqld_pid=`cat "$mysqld_pid_file_path"`
		if (kill -0 $mysqld_pid 2>/dev/null)
			then
			kill $mysqld_pid
			sleep 2
		fi
	fi
}	

restart(){
	printf "Rstarting MySQL...\n"
	stop
	sleep 2
	start
}


case "$1" in
start)
	start
;;
stop)
	stop
;;
restart)
	restart
;;
*)

	printf "Usage: /data/${port}/mysql{start|stop|restart}\n"
esac

赋予可执行权限

chmod +x /mysql/3306/mysqld_3306

降低权限 将mysql目录全部赋予msyql
chown -R mysql.mysql /mysql/

配置环境变量

[root@master bin]# vim /etc/profile
#末尾添加
export PATH=/application/mysql-5.6.49-linux-glibc2.12-x86_64/bin/:$PATH
#加载生效
[root@master bin]# source /etc/profile
#检查是否生效
[root@master ~]# echo $PATH
/application/mysql-5.6.49-linux-glibc2.12-x86_64/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

创建实例对应的目录

在这里插入代码片

3.mysql实例初始化

mkdir -p /mysql/3306/data
tree /mysql
[root@master 3307]# tree /mysql
/mysql
├── 3306

#此时3306data文件夹是空的,执行初始化后将生成一系列初始数据
[root@mysql-master scripts]# ls /mysql/3306/data/

[root@mysql-master scripts]#


#执行初始化命令后出现两个ok无报错则正常初始化
[root@mysql-master scripts]# /application/mysql-5.6.49-linux-glibc2.12-x86_64/scripts/mysql_install_db  --defaults-file=/mysql/3306/my.cnf --basedir=/application/mysql-5.6.49-linux-glibc2.12-x86_64/ --datadir=/mysql/3306/data/ --user=mysql

#将在data目录下生产相关初始化文件
[root@mysql-master 3306]# ll /mysql/3306/data
total 110600
-rw-rw----. 1 mysql mysql 12582912 Jul 18 19:26 ibdata1
-rw-rw----. 1 mysql mysql 50331648 Jul 18 19:26 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 Jul 18 19:26 ib_logfile1
drwx------. 2 mysql mysql     4096 Jul 18 19:26 mysql
drwx------. 2 mysql mysql     4096 Jul 18 19:26 performance_schema
drwx------. 2 mysql mysql        6 Jul 18 19:26 test
[root@mysql-master 3306]# 

4.启动mysql

#3306数据库启动
#启动时报错了
[root@master 3306]# /mysql/3306/mysqld_3306 start
starting MySQL...
230730 06:51:40 mysqld_safe error: log-error set to '/mysql/3306/mysq1_3306_error.log', however file don't exists. Create writable for user 'mysql'.


#解决报错
touch /mysql/3306/mysq1_3306_error.log
[root@master 3306]# touch /mysql/3306/mysq1_3306_error.log
[root@master 3306]# chown -R mysql.mysql /mysql/3306/mysq1_3306_error.log
[root@master 3306]# /mysql/3306/mysqld_3306 start
starting MySQL...

[root@master 3306]# netstat -ntlp |grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      16242/mysqld        
[root@master 3306]# 

5.登录mysql
首次登录不需要密码

#登录3306
#指定地址和端口登录
[root@master 3306]# mysql -uroot -p -h 127.0.0.1 -P 3306
#登录3307
#指定地址和端口登录
[root@master 3306]# mysql -uroot -p -h 127.0.0.1 -P 3307


#使用套接字登录(走内存共享)
[root@master 3306]# mysql -S /mysql/3306/mysq1.sock
[root@master 3306]# mysql -S /mysql/3307/mysq1.sock

6.设置开机自启动
找到自启目录,将要启动的脚本和路径往里添加即可
(1)首先得保证脚本启动没问题

##保证启动命令在服务器中任何目录下都可以执行启动
/mysql/3306/mysqld_3306 start

(2)编写脚本,将启动命令放到启动脚本中,注意 “# chkconfig: 2345 80 90” 必须有,表示级别,不加将导致开机自启无法添加

​ vim mysql_start.sh

#!/bin/bash
# **********************************************************
# * Author        : Yonghai
# * Email         : Yonghai@163.com
# * Create time   : 2023-07-30 09:12
# * Filename      : mysql_start.sh
# * Description   : 
# **********************************************************
# chkconfig: 2345 80 90
/mysql/3306/mysqld_3306 start
/mysql/3307/mysqld_3307 start

(3)将其放到、etc/init.d/目录下,并使用chkconfig命令将其设置为开机自启动(注意文件添加可执行权限):

[root@master init.d]# ls
mysql_start.sh
[root@master init.d]# chmod +x mysql_start.sh 
[root@master init.d]#
# chkconfig --add mysql_start.sh
# chkconfig mysql_start.sh on

#reboot重启验证
reboot

7.修改数据库root用户密码
(1)使用套接字登录修改密码

mysqladmin -uroot -S /mysql/3306/mysql.sock password
[root@master ~]# mysqladmin -uroot -S /mysql/3306/mysql.sock password
New password: 
Confirm new password:


#密码登录 必须输密码才能登录,加 -p 参数
[root@master ~]# mysql -p -S /mysql/3306/mysql.sock
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.49-log MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q

8.远程登录数据库(使用navicat)

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

#允许用户在192.168.10.0/24这个网段内连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%'IDENTIFIED BY 'xlgw123456!' WITH GRANT OPTION;

#这样也可
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%'IDENTIFIED BY 'xlgw123456!'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值