当前位置: 首页 > news >正文

一站式营销型网站建设服务东莞室内设计学校

一站式营销型网站建设服务,东莞室内设计学校,营销网站建设软件下载,哔哩哔哩视频推广文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本 Docker安装 Mysql 8.0.22 # 下载mysql $ docker pull mysql 默认安装最新…

文章目录

  • Docker安装 Mysql 8.0.22
  • Mysql 创建账号并授权
  • Mysql 数据迁移
        • 同版本数据迁移
        • 跨版本数据迁移

Mysql 5.x 版本与 Mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本

Docker安装 Mysql 8.0.22


# 下载mysql
$ docker pull mysql              默认安装最新版本的mysql(注意可能不是稳定版本)$ docker pull mysql:版本号        安装指定版本的mysql                    ## 此处以安装mysql8.0.22为例,命令为:
$ docker pull mysql:8.0.22# 创建mysql日志目录、数据目录、配置目录
mkdir -p /mydata/mysql/log /mydata/mysql/data  /mydata/mysql/conf# 增加mysql配置(docker外部挂载的mysql配置文件)
$ vi /mydata/mysql/conf/my.cnf       # 添加配置文件 my.inf ,每个版本大版本的mysql,配置可能有区别,下面是示例。
# MYSQL常用配置
[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
user=mysql
#默认3306端口,这里改了默认端口
port=3308default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000init-connect='SET collation_connection = utf8_unicode_ci'
init-connect='SET NAMES utf8'
default-time_zone = '+8:00'
character-set-server=utf8
collation-server=utf8_unicode_ci
#collation-server=utf8_general_ci
skip-character-set-client-handshake
skip-name-resolve# 启动mysql容器,如果没有则自动下载 mysql:8.0.22 镜像 
$ docker run -p 3308:3308 --name mysql \
--privileged=true \
--restart=always \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.22# 参数解释
-p 3308:3308 --name mysql \				# 将容器内部3308端口映射到外部主机3308端口
--privileged=true \					   	# 在容器内启用特权模式,以便于执行一些特殊操作
--restart=always \						# 如果容器停止运行,自动重新启动容器。
-v /mydata/mysql/log:/var/log/mysql \	# 将宿主机的 /mydata/mysql/data 目录挂载到容器的 /var/lib/mysql 目录,用于存储 MySQL 数据。
-v /mydata/mysql/data:/var/lib/mysql \	# 将宿主机的 /mydata/mysql/conf 目录挂载到容器的 /etc/mysql 目录,用于存储 MySQL 配置文件。
-v /mydata/mysql/conf:/etc/mysql \		# 设置 MySQL 的 root 用户的密码为 “root”。你可以根据需要修改为其他密码。
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.22					# 使用名为 “mysql:8.0.22” 的 Docker 镜像来后台运行容器。# [可选]滚动查看容器日志
$ docker logs -f -t --tail=20 mysql# [可选]重启docker内部的mysql容器,使新增的配置生效。
$ docker restart mysql# [可选]设置Docker容器启动,自动启动mysql
$ sudo docker update mysql --restart=always# [可选]修改时区 (服务重启后失效。需要修改配置)
show variables like '%time_zone%';
set global time_zone='+8:00';
set time_zone = '+8:00'; 
flush privileges;

Mysql 创建账号并授权

MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作

方式一:通过 数据库工具 连接 root账号,创建 子账号

方式二:通过命令直接创建子账号并授权

可以任选其一

# 进入mysql 容器内部
$ docker exec -it mysql /bin/bash
# 本地无密码登录root 
$ mysql -u root --port=3308 -p
show databases; # 显示所有数据库
use mysql;    # 使用 mysql数据库
select host, user, authentication_string, plugin from user;   # 查询mysql账号# 方式一:通过 数据库工具 连接 root账号,创建 子账号
# 修改root账号可以远程连接
update user set host = '%' where user = 'root';
flush privileges;
# 通过 数据库工具 连接 root账号,创建 子账号,略
# 创建子账号后,修改root账号只能本地连接
update user set host = 'localhost' where user = 'root';
flush privileges;#方式二:通过ssh连接数据库,通过命令创建子账号
# 进入mysql 容器内部
```shell
# 进入mysql 容器内部
$ docker exec -it mysql /bin/bash
# 本地无密码登录root 
$ mysql -u root --port=3308 -p
show databases; # 显示所有数据库
use mysql;    # 使用 mysql数据库
select host, user, authentication_string, plugin from user;   # 查询mysql账号# 方式一:通过 数据库工具 连接 root账号,创建 子账号
# 修改root账号可以远程连接
update user set host = '%' where user = 'root';
flush privileges;
# 通过 数据库工具 连接 root账号,创建 子账号,【略】
# 创建子账号后,修改root账号只能本地连接
update user set host = 'localhost' where user = 'root';
flush privileges;#方式二:通过ssh连接数据库,通过命令创建子账号
# 进入mysql 容器内部
$ docker exec -it mysql /bin/bash
# 本地无密码登录root 
$ mysql -u root --port=3308 -p
show databases; # 显示所有数据库
use mysql;    # 使用 mysql数据库
select host, user, authentication_string, plugin from user;   # 查询mysql账号###### 示例1 :创建只读权限的账户,仅能连接"demo"数据库,#######
create user 'demo_only_read'@'%' identified by 'onlyRead@demo'; grant all privileges on demo.* to 'demo_only_read'@'%'   with grant option; 
# 修改密码加密方式(Mysql 8.x的加密方式与Mysql 5.x的加密方式有很大不同,Mysql8.x新的加密方式,部分数据库可视化工具不支持导致连接不上,这里将 Mysql 8.x的加密方式改为 Mysql 5.x的加密方式)
alter user 'demo_only_read'@'%' identified with mysql_native_password by 'onlyRead@demo';
# 刷新配置使新配置生效
flush privileges;###### 示例2 :创建 demo 完全权限,仅能操作"demo"数据库,不可操作其他数据库 的账号 ###### 
create user 'demo'@'%' identified by 'read_write@demo'; grant all privileges on demo.* to 'demo'@'%'   with grant option; alter user 'demo'@'%' identified with mysql_native_password by 'read_write@demo';flush privileges;# 登录 demo 账号验证
$ mysql -u demo --port=3308 -p 

Mysql 数据迁移

同版本数据迁移

重要:同版本之间可以直接拷贝 data数据文件夹。但跨版本直接拷贝可能会版本冲突,导致数据库数据不可见。

由于是低版本5.x 升级为 8.0.x 因此不能使用数据文件直接拷贝的方式

# 查找本机mysql 文件目录
$ find / -name mysql
# 或者登录msyql后,执行如下sql查看data数据目录:
$ show variables like 'datadir';
# 两个服务器之间传输文件  
$ scp  -r /var/lib/mysql/  root@IP:/home/xxx/

跨版本数据迁移

  1. 先利用数据库工具,如: DBeaver 先导出数据库表结构 DLL 的sql语句,然后执行;
  2. 将所有表数据通过 DBeaver 导出 。 (如果没有第一步,直接第二步,会丢失数据库索表备注,索引和约束等信息)
    • 选中要导出的表,右键—》导出数据
    • 选择,从A库拷贝到 B库,由于上一步已提前执行了DDL,这一步是导入每个表的表数据
    • [可选]如果你导出的数据很大,则需要调整DBeaver可支配的运行内存,尽量调大,否则会内存溢出而中断。找到DBeaver安装目录,打开dbeaver.ini文件,添加 JVM参数-Xms512m -Xmx3072m 。保存,重启DBeaver。

导出数据

http://www.yayakq.cn/news/25345/

相关文章:

  • 网站根目录是什么电商网站系统
  • 铁岭 网站建设做商品网站的教学视频
  • ps ui做响应式网站要求wordpress图片生成插件下载
  • apsx做的网站怎么发布网站建设 网址导航
  • 在局网站 作风建设昆明网站建设logovi
  • 网站认证值不值得做宁波易企网做的网站
  • 服务器 网站建设 过程湖南企业网络推广软件
  • 怎样做网站平台赚钱吗手把手网站开发
  • asp网站域名绿色资源网
  • 35开始学网站开发简单商业网站模板
  • 巨鹿企业做网站10号店分销平台
  • 网站制作公司 深圳图片上传 网站建设教学视频教程
  • 鲜花电子商务网站建设规划书wordpress首页图片导航分类
  • 男女做羞羞的视频网站高坪网站建设
  • 泰州网站建设团队一般全包装修多少钱
  • 大淘客网站建设app设计公司网站什么重要
  • 广州自助网站推广建站东莞企业如何建网站
  • 做网站时的注册权起到什么作用南宁网站建设gxskm
  • 网站代理备案价格聊城市建设工程质量监督站网站
  • 专注网站建设与制作长春百度关键词推广
  • 长沙做网站价格中文域名有价值吗
  • 豆瓣网站是怎么建设的遵义做手机网站建设
  • 宁夏建设管理局网站做个网站上百度怎么做
  • 网站建设教程pdf百度云决定网站打开的速度
  • 与客户沟通网站建设的技巧基层建设检索网站
  • 建设企业银行网站多少钱电子商务网站建设内涵
  • 哈尔滨做网站哪家好wordpress调用自定义分类标题
  • 课程资源网站开发解决方案海报图片素材
  • 网站备案负责人修改南京网站公司哪家好
  • 网站元素优化 移动站添加网站描述