2. mysql环境
所用工具xshell、xftp
2.1 下载mysql
下载linux版的mysql
2.1.1 进入官网
https://dev.mysql.com/downloads/mysql/
2.1.2 点击 “ Archives ”
2.1.3 选择32位或者64位的包,点击 “ Download ”
2.2 导入mysql
用xftp将mysql的安装包放入linux系统,具体的位置可以自己定,直接拉过去即可
2.3 解压mysql
用xshell通过命令进入到压缩包所在目录
cd /usr/software/mysql
然后执行解压
tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
2.4 重命名文件夹
可以用下面的命令重命名,也可以用xftp直接重命名
mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0.21-x64
2.5 新建data目录
2.5.1 进入解压后的mysql的目录
cd /usr/software/mysql/mysql-8.0.21-x64
2.5.2 新建data目录 及 tmp
用来存放my.cnf下定义的一些文件路径,my.cnf的配置下面会有介绍
mkdir data
mkdir -p data/tmp
2.6 环境变量配置
2.6.1 编辑/etc/profile文件
vi /etc/profile
在文档的最后加入如下配置,MYSQL_HOME的路径为解压后的路径,以自己的路径为准,编辑完后按esc,再输入“:wq”回车,保存后退出
#mysql8 环境
export MYSQL_HOME=/usr/software/mysql/mysql-8.0.21-x64
export PATH=$PATH:$MYSQL_HOME/bin
2.6.2 保存环境配置
使用source /etc/profile 保存配置
source /etc/profile
2.6.3 添加mysql组合mysql账户
(安全问题:防止因为数据库的账户有问题而影响整个系统的所有账户)
groupadd mysql
2.6.4 关联myql用户到mysql用户组中
当我们在不通过yum(CentOS<redhat>)、apt-get(Ubuntu<debian>)来安装MySQL的时候,通常执行以下命令来创建一个用户名为mysql的用户并加入mysql用户组
语法 useradd mysql[用户名] -g mysql[用户组] 或者 useradd -g mysql[用户组] mysql[用户名]
useradd -g mysql mysql
2.6.5 更改mysql目录下所有目录及文件夹所属用户组和用户以及权限
chown -R mysql:mysql /usr/software/mysql/mysql-8.0.21-x64
chmod -R 755 /usr/software/mysql/mysql-8.0.21-x64
chown -R mysql:mysql /usr/software/mysql/mysql-8.0.21-x64/data
2.6.6 安装libaio依赖包
(1)查询是否安装libaio依赖包
yum search libaio
(2)如果没安装,可以用下面命令安装
yum install libaio
2.6.7 安装mysql
mysqld --user=mysql --basedir=/usr/software/mysql/mysql-8.0.21-x64 --datadir=/usr/software/mysql/mysql-8.0.21-x64/data --initialize
3ZG6a.UkEa_-是mysql数据库root用户登录的临时密码,需要记下来,下面登录时需要用到
2.6.8 修改ysql配置文件
vim /usr/software/mysql/mysql-8.0.21-x64/support-files/mysql.server
(1)添加属性值
basedir=/usr/software/mysql/mysql-8.0.21-x64/
datadir=/usr/software/mysql/mysql-8.0.21-x64/data
mysqld_pid_file_path=/usr/software/mysql/mysql-8.0.21-x64/data/mysqld_pid
(2)再将下面框起来的路径改成自己mysql的路径即可
2.6.9 设置开机启动
cp /usr/software/mysql/mysql-8.0.21-x64/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld //将mysql服务加到系统服务中
chkconfig mysqld on //开机自启动
2.6.10 初始化mysql服务
sh /usr/software/mysql/mysql-8.0.21-x64/support-files/mysql.server start
2.6.11 修改my.cnf文件
vim /etc/my.cnf
# MySQL 配置文件
[client]
port=3306
# mysql socket 文件存放地址
socket=/usr/software/mysql/mysql-8.0.21-x64/data/tmp/mysql.sock
# 默认字符集
default-character-set=utf8mb4
[mysqld]
server-id=1
# 端口
port=3306
# 运行用户
user=mysql
# 最大连接
max_connections=200
socket=/usr/software/mysql/mysql-8.0.21-x64/data/tmp/mysql.sock
# mysql 安装目录(解压后文件的目录)
basedir=/usr/software/mysql/mysql-8.0.21-x64
# 数据目录
datadir=/usr/software/mysql/mysql-8.0.21-x64/data
pid-file=/usr/software/mysql/mysql-8.0.21-x64/data/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8mb4
# 数据库引擎
default-storage-engine=INNODB
log_error=/usr/software/mysql/mysql-8.0.21-x64/data/error.log
slow_query_log_file=/usr/software/mysql/mysql-8.0.21-x64/data/mysql-slow.log
[mysqldump]
quick
max_allowed_packet=16M
EOF
2.6.12 启动服务
(1)开启服务
提示 Starting MySQL SUCCESS! 即启动成功
service mysqld start
(2)停止服务
service mysqld stop
(3)重启服务
service mysqld restart
2.7 登录mysql
使用临时密码登录“3ZG6a.UkEa_-”,个人生成的密码不一
./bin/mysql -u root -p
2.8 修改root密码
修改后刷新
ALTER USER 'root'@'localhost' IDENTIFIED BY 'jmy123456';
flush privileges;
2.9 开启mysql的远程访问权限
2.9.1 验证root用户是否允许远程登录
(1)退出登录
exit
(2)验证linux是否允许mysql远程登录
mysql -uroot -pjmy123456 -h 192.168.233.150
报ERROR 1130 (HY000): Host 'jmyLinux' is not allowed to connect to this MySQL server这个错误说明无法远程连接,若可以连接,则无需做下面的操作
2.9.2 设置远程访问权限
(1)使用root用户登录
mysql -uroot -pjmy123456
(2)选择root用户下的mysql数据库
use mysql
(3)设置能访问root用户的ip
a. 将host设置为%表示任何ip都能连接mysql,也可指定为某个特定ip
update user set host='%' where user='root' and host='localhost';
b. 查看用户表验证是否添加成功,查询结果出现第一行的数据表示修改成功
select user, host from user;
(4)授权给root用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jmy123456' WITH GRANT OPTION;
这里报了ERROR 1064 (42000)的错误,这里是因为版本的原因,并且root用户也已经存在,不需要在命令新建,8版本以后的mysql必须分两步来实现设置用户权限
a. 先创建用户
若需要授权的用户存在则不需要创建
select user from user;
若需要授权的用户不存在则用下面语句创建
create user 'root'@'%' identified by 'jmy123456';
identified by:连接时输入密码,密码为jmy123456
b. 对该用户分配用户权限
grant all privileges on *.* to 'root'@'%' with grant option;
grant:赋权命令
all privileges:当前用户的所有权限
on:介词
*.*:当前用户对所有数据库和表的相应操作权限
to:介词
‘root’@’%’:权限赋给root用户,所有ip都能连接
with grant option:允许级联赋权
(5)刷新访问权限表,重要!!!
flush privileges;
2.9.3 验证root用户是否允许远程登录
(1)退出登录
exit
(2)验证linux是否允许mysql远程登录
mysql -uroot -pjmy123456 -h 192.168.233.150
2.10 在window使用Navicat链接linux的mysql(Navicat,mysql不在同一台服务器上)
2.10.1 开启mysql的远程访问权限
上面已经完成这步
2.10.2 防火墙开放3306及80端口
在CentOS7以上,防火墙的管理由friewail来管理,这里介绍CentOS7以上版本,以3306端口为例
若没有firewall插件需要先安装插件:
yum install firewalld firewalld-config
(1)查看防火墙3306端口是否开放
firewall-cmd --query-port=3306/tcp
(2)开放防火墙端口3306和80端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
(3)生效配置
firewall-cmd --reload
(4)查看开放的端口列表
firewall-cmd --zone=public --list-ports
(5)重启防火墙
systemctl restart firewalld.service
网友评论