此示例将数据库文件上传至opt文件夹下面

下载数据库

下载地址

img

上传数据库

使用xftp上传mysql安装包到服务器

如果你的其他服务器也有这个包可以选择用命令的形式上传

rsync -P --rsh=ssh root@另一台服务器IP:文件位置 存放到本服务器位置

//示例 从192.168.0.1下的opt文件夹下面的mysql传到本服务器的opt文件夹下面
rsync -P --rsh=ssh root@192.168.0.1:/opt/mysql.tar /opt/

解压

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar

移动修改文件名

mv ./mysql-8.0.26-linux-glibc2.12-x86_64.tar ./mysql8.0

建data文件夹

mysql8.0下面创建data文件夹

# 接入mysql8.0文件夹
cd mysql8.0
# 创建data文件
mkdir data

创建用户组

groupadd mysql;
useradd -g mysql mysql;

修改文件权限

chown -R mysql.mysql /opt/mysql8.0/

生成my.cnf文件

touch /etc/my.cnf

编辑my.cnf

这个文件有可能里面有内容 所以需要全部先删除

如下配置需要修改7、8、9、21、22、48行 改为mysql解压路径

[mysql]
default-character-set=utf8

[mysqld]
port=3306
default_authentication_plugin=mysql_native_password
socket = /opt/mysql8.0/data/mysql.sock
basedir=/opt/mysql8.0
datadir=/opt/mysql8.0/data/
character-set-server=utf8
default-storage-engine=InnoDB
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8'
innodb_buffer_pool_size=512M
innodb_flush_log_at_trx_commit=0
innodb_lock_wait_timeout=31536000
innodb_log_buffer_size=8M
innodb_log_file_size=16M
join_buffer_size=200M
key_buffer_size=400M
log-error=/opt/mysql8.0/data/mysql.log
pid-file=/opt/mysql8.0/data/mysql.pid
log_error_verbosity=1
max_allowed_packet=2000M
max_connections=1000
max_heap_table_size=6400M
myisam_max_sort_file_size=64M
myisam_sort_buffer_size=32M
read_buffer_size=4M
read_rnd_buffer_size=4000M
server_id=1
skip-external-locking=on
sort_buffer_size=256kb
table_open_cache=256
thread_cache_size=16
tmp_table_size=64M
wait_timeout=31536000
interactive_timeout=31536000
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
group_concat_max_len=10240
bind-address = 0.0.0.0
skip-networking=0


[client]
port=3306
default-character-set=utf8
socket = /opt/mysql8.0/data/mysql.sock

再次更改用户文件夹权限

权限这里你可以直接给mysqlmysql下面的文件赋值为最高权限 chmod 777 ./mysqlchmod 777 ./* 后面这个命令需要进入到mysql文件夹里面

chown -R mysql.mysql /opt/mysql8.0/

初始化数据库

需要将/opt/mysql8.0/bin/mysqld/opt/mysql8.0/opt/mysql8.0/data改为自己的文件路径

这一步可能为提示错误 系统版本问题error while loading shared libraries: libaio.so.1: cannot open shared object file directory 可以执行先执行yum update然后再执行yum install libaio-devel.x86_64 最后执行下面的初始化命令

/opt/mysql8.0/bin/mysqld --user=mysql --initialize --basedir=/opt/mysql8.0 --datadir=/opt/mysql8.0/data

查看初始化数据库密码

my.cnf配置文件中 配置了日志位置 具体看个人安装mysql位置

img

查看 需要记住这个密码 后面登录数据库需要使用

cat /opt/mysql8.0/data/mysql.log

img

复制文件

主意数据库路径

cp /opt/mysql8.0/support-files/mysql.server /etc/init.d/mysqld

修改权限

chmod +x /etc/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld

注册服务

chkconfig --add mysqld
chkconfig --list mysqld

修改环境变量

/etc/profile底部添加如下内容注意mysql路径

编辑/etc/profile文件命令 vim /etc/profile

/etc/profile中输入内容 按下键盘i 即可输入如下内容

退出保存 按下键盘 esc 再输入 :wq

export PATH=$PATH:/opt/mysql8.0/bin:/opt/mysql8.0/lib
export PATH

刷新环境配置

source /etc/profile

启动mysql

关闭mysql命令:service mysql stop

service mysql start

登录mysql

密码为一开始查看的初始密码

mysql -uroot -p;

修改数据库密码

不修改密码会提示错误ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

执行玩修改密码后先刷新flush privileges; 然后退出quit 重新登录mysql -uroot -p;

alter user 'root'@'localhost' identified by '密码';

alter user 'root'@'localhost' identified by 'root';

远程访问

创建用户

默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问

create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
# 执行刷新
flush privileges;

分配权限

分配好之后需要执行2次刷新 然后在重启数据库systemctl restart mysqld

grant all on *.* to 'root'@'%';

# 执行刷新 执行2次
flush privileges;

查看状态数据库

# 启动mysql
systemctl start mysqld

# 关闭mysql
systemctl stop mysqld

# 重启mysql
systemctl restart mysqld

开放端口

# 以下操作2选1即可
# 方式1:关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #停止防火墙开机自启

# 方式2:放行3306端口的外部访问
firewall-cmd --add-port=3306/tcp --permanent #放行tcp规则下的3306端口,永久生效
firewall-cmd --reload #重新加载防火墙规则使其生效

服务器的话需要登录服务器厂商管理平台继续开发端口 以腾讯轻量服务器为例

在防火墙中添加规则

img

连接

img