一 . 准备工作
MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.34
https://dev.mysql.com/downloads/mysql/
本次linux机器使用的是阿里云ECS实例
二 . 开始部署
1. 将安装包上传至服务器 解压到当前文件夹
tar -zxvf mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz
2. 移动解压后的目录到目标安装目录
sudo mv mysql-8.0.34-linux-glibc2.28-x86_64 /usr/local
3. 文件名太长,改成 mysql-8.0.34
mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql-8.0.34
4. 增加用户组 mysql,在用户组下增加用户 mysql
# 增加用户组 mysql
sudo groupadd mysql
# 在用户组下增加用户 mysql
sudo useradd -r -g mysql mysql
5. 检查用户组、用户是否存在
groups mysql
若存在则显示 mysql : mysql
;若不存在,则显示 groups: mysql: No such user
6. 将安装目录 /usr/local/mysql-8.0.34/ 的所有者及所属组改为 mysql
chown -R mysql:mysql /usr/local/mysql-8.0.34/
7. 在/etc下创建 my.cnf配置文件
touch /etc/my.cnf
8. 编辑my.cnf配置文件
vim /etc/my.cnf
加配置,设置编码格式及忽略大小写:
[mysqld]
basedir=/usr/local/mysql-8.0.34
datadir=/usr/local/mysql-8.0.34/data
port=3306
socket=/tmp/mysql.sock
character_set_server=utf8
lower_case_table_names=1
log-error=/usr/local/mysql-8.0.34/data/mysql.log
pid-file=/usr/local/mysql-8.0.34/data/mysql.pid
[mysql]
default-character-set = utf8
9. 初始化
在 mysql-8.0.11 目录下创建一个 data 文件夹
cd /usr/local/mysql-8.0.34/
mkdir data
初始化
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.34/ --datadir=/usr/local/mysql-8.0.34/data/
若出现以上报错,尝试用如下解决方案
执行以下命令后重试
yum install libaio
yum -y install numactl
将mysql加入到可控制启动服务的文件夹内,并命名mysql(service可控制的服务名)
目的:可用
service mysql start
命令来控制启动 mysql
cd support-files
cp mysql.server /etc/init.d/mysql
10. 配置profile环境变量
vim /etc/profile
在底部添加以下内容:
export MYSQL_HOME="/usr/local/mysql-8.0.34"
export PATH="$PATH:$MYSQL_HOME/bin"
让修改的profile文件立即生效
source /etc/profile
11. 启动并登录 mysql
启动mysql
service mysql start
初始密码可以查看 /usr/local/mysql-8.0.34/data/mysql.log 日志文件,在前面几行中找到生成的密码,如下所示:
登录 mysql
mysql -u root -p
修改密码
mysql> use mysql;
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql> flush privileges;
11. 远程连接mysql数据库
1.查询访问权限
select user,host from mysql.user;
root用户的localhost表示只允许本机访问,要实现远程连接,可以将用户的host改为%,表示允许任意主机访问,如果需要设置只允许特定ip访问,则应改为对应的ip。
2. 修改root用户的host字段为%
update mysql.user set host="%" where user="root";
3. 刷新配置
flush privileges;
4.开放端口号
如果是物理服务器:
查询3306端口是否开放
firewall-cmd --query-port=3306/tcp
没有开放则添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
添加端口后刷新防火墙
firewall-cmd --reload
如果是云服务器:
配置实例入方向的访问规则,增加3306端口号。
5. 使用客户端连接数据库
本机使用的阿里云ecs所以我们的数据库主机选云服务器公网IP。
客户端测试连接
完结。。。