安装 mysql8.0-docker版安装 安装docker2022版(对大家有帮助)

这篇具有很好参考价值的文章主要介绍了安装 mysql8.0-docker版安装 安装docker2022版(对大家有帮助)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、docker安装

安装docker2022版(对大家有帮助)

二、docker 安装mysql8.0

1.从 Docker Hub 下载 MySQL 8.0 镜像。打开终端并运行以下命令:

docker pull mysql:8.0

2.创建一个 MySQL 容器并运行。在终端中运行以下命令:

//重新创建容器
 docker run --name mysql8 -p 3306:3306 -d  -v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/data/mysql/data:/var/lib/mysql -v /home/data/mysql/log:/logs -e MYSQL_ROOT_PASSWORD=123456 --restart=always  mysql:8.0 --lower_case_table_names=1

1-e MYSQL_ROOT_PASSWORD 设置mysql密码
-v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf 挂载配置文件路径
-v /home/mysql/:/var/lib/mysql 挂载磁盘实现数据持久化
--restart=always 容器异常停止后自动重启
--lower_case_table_names=1 忽略大小写,docker mysql默认区分大小写的
 

3.连接到 MySQL 服务器。使用以下命令连接到容器内的 MySQL 服务器:

 docker exec -it my-mysql mysql -uroot -p

 “my-mysql” 是容器的名称,“-uroot” 是 MySQL 的 root 用户名,“-p” 表示需要输入密码。

4.可以在 MySQL 服务器中执行命令了。例如,创建一个新的数据库: 

CREATE DATABASE my_database;
 

 5.可以通过退出 MySQL 服务器来退出容器:

exit

6.现在,已经成功地在 Docker 中安装并运行了 MySQL 8.0。

7.远程连接mysql8.0

第一种方法

//进入容器
docker exec -it mysql /bin/bash
//登录
mysql -u root -p
//提示输入之前设置的密码
use mysql;
//修改远程链接授权(8.0以上版本好像默认已经开启了远程访问)
grant all privileges on *.* to 'root'@'%';
 

第二方法 

当你的帐号不允许从远程登陆,只能在localhost连接时。这个时候只要在mysql服务器上,更改 mysql 数据库里的 user 表里的 host 项,从localhost"改成%即可实现用户远程登录

update user set host = '%' where user='root' and host='localhost';

#grant all privileges 语法

grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option; 

三、常见错误

8.账号被删除了处理方法

8.1在navicat for mysql中删除了root用户 

mysqld --console --skip-grant-tables --shared-memory

具体步骤:
1、关掉mysql服务器:
net stop mysql

2、用cmd用管理员的方式进入到mysql的安装路径下的bin,执行:
mysqld --console --skip-grant-tables --shared-memory

3、重开cmd,无密码进入mysql:
mysql -u root

4、修改数据库并给root用户添加权限
use mysql;
update user set select_priv=‘Y’,Insert_priv=‘Y’,Update_priv=‘Y’,Delete_priv=‘Y’,Create_priv=‘Y’,Drop_priv=‘Y’,Reload_priv=‘Y’,File_priv=‘Y’,Grant_priv=‘Y’,References_priv=‘Y’,Index_priv=‘Y’,Alter_priv=‘Y’,Show_db_priv=‘Y’,Super_priv=‘Y’,Create_tmp_table_priv=‘Y’,Lock_tables_priv=‘Y’,Execute_priv=‘Y’,Repl_slave_priv=‘Y’,Repl_client_priv=‘Y’,Create_view_priv=‘Y’,Show_view_priv=‘Y’,Create_routine_priv=‘Y’,Alter_routine_priv=‘Y’,Create_user_priv=‘Y’,Event_priv=‘Y’,Trigger_priv=‘Y’,Create_tablespace_priv=‘Y’
WHERE user=‘root’;

5、刷新并退出:
flush privileges;
exit;
 

9 常见错误处理

9.1用navicat登录,报1251错误
原因:加密规则不同

跳过数据库权限验证 的方式进入进入数据库,然后修改加密规则:

alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘你的密码’;

 9.2 mysql 登录报错1449-The user specified as a definer(‘mysql.infoschema‘@localhost‘) does not exist:

# 1、进入mysql:
mysql -u root -p
# 2、删除之前的视图表:
drop user 'mysql.infoschema'@"localhost";
# 3、刷新权限:
flush privileges;
# 4、创建缺少的视图表:加粗样式
create user 'mysql.infoschema'@"localhost" identified by '你的密码';
# 5、再刷新权限:
flush privileges;
# 6、使用数据库:
use mysql;
# 7、设置权限:
update user set Select_priv = 'Y' where User = 'mysql.infoschema';
# 8、刷新权限:
flush privileges;

四、授权

一般来说我们不会轻易创建一个用户给他赋予所有权限,也就是 grant all privileges,那么grant后面可以接哪些权限呢?这里简单整理了一部分权限以及其含义:

安装 mysql8.0-docker版安装,大数据(AI&python&量化),docker,容器,运维 

(1)新建用户
创建用户常用的命令是CREATE USER,不过使用CREATE USER语句创建用户时,需要操作员要有相应的权限,也就是user表中的字段Create_priv为Y才能创建用户。比如创建一个名为admin的用户,并且登录密码为123456:

CREATE USER ‘admin’@‘%’ IDENTIFIED BY ‘123456’
一般创建用户的格式为:CREATE USER ‘用户名’@‘登录IP或者域名’ IDENTIFIED BY ‘登录密码’。
其中需要注意的是登录IP或者域名,很多时候会将登录IP设置为**%,%**代表所有主机,表示该用户可以在任何机器上进行登录。192.168.101.%表示允许192.168.101这个网段的主机进行登录。

当你只是完上面的创建admin用户命令后,你可以打开mysql库下的user表,你会发现里面多了一条admin的数据,但是所有的权限都是N,这表明该admin用户没有任何权限,不能查看操作任何数据库资源。

(2)删除用户
刚刚我们已经创建了一个admin账号并且没有为其设置任何权限,此时我们可以使用 DROP USER 命令删除某个用户,例如我们要删除之前创建的admin用户,那么我们可以使用命令:

DROP USER 'admin'@'%' -- 删除admin用户,用户名(User)和主机名(Host)构成
FLUSH PRIVILEGES​; -- 刷新权限

(3)禁用用户、启用用户
有时候我们只想禁用某个用户的登录,并不想将该用户进行删除,那么可以使用MySQL的禁用功能。在演示之前我们现在创建一个admin用户,该用户拥有访问数据库(db_cztl_dev)的权限,请注意db_cztl_dev是在我MySQL中存在的一个数据库,您可以使用您自己的数据库。执行命令:

create user 'admin'@'%' identified by '123456' -- 创建用户
GRANT SELECT ON `db_cztl_dev`.* TO 'admin'@'%' -- 将db_cztl_dev数据库的读权限赋予admin
 

 

(4)重命名用户名
修改用户名的格式如下:

rename user '用户名'@'IP或者域名' to '新用户名'@'IP或者域名';

比如我们要将admin用户重名为king,那么可以这样写:

rename user 'admin'@'%' to 'king'@'%';

(5)修改用户密码
set password for '用户名'@'IP或者域名'=password('新密码')
(6)收回权限(revoke)
根据上面几小节我们指定如何给一个用户赋予权限可以用Grant命令,相对应的撤销用户的某个权限可以使用REVOKE。

(6.1)查看数据库中所有用户信息
我们知道用户的基本信息都存放在user表中,那么查看所有用户信息可以使用以下语句:

SELECT user,host FROM mysql.`user`;

6.2)查看用户拥有的所有权限

查看某个用户的权限可以使用 show grants for 用户名,比如我们要查看admin用户的权限有哪些:

SHOW GRANTS FOR 'admin'@'%'

6.3)使用REVOKE撤销权限
由4.2小节我们可以看到admin拥有访问db_cztl_dev数据库的权限,假如我们此时想撤销admin的权限,可以这样写:

REVOKE SELECT ON db_cztl_dev.* FROM 'admin'@'%'; -- 撤销admin在数据db_cztl_dev的权限

此时我们再使用SHOW GRANTS FOR 'admin'@'%'查看admin权限,可以看到admin访问db_cztl_dev数据库的权限已被撤销。

(7)修改用户权限(Grant 权限类型 ON 数据库.表 TO 用户)
通过6.3我们已经撤销了admin查看db_cztl_dev的权限,如果此时我们想赋予admin用户可以访问并且修改db_cztl_dev库下cztl_line表的权限,可以这样做:

GRANT SELECT,UPDATE ON db_cztl_dev.cztl_line TO 'admin'@'%';
FLUSH PRIVILEGES;

(8) 设置MySQL用户密码过期策略
设置系统参数default_password_lifetime作用于所有的用户账户,可以通过show variables like ‘default_password_lifetime’;查看密码过期策略,0表示用不过期,可以通过 set global default_password_lifetime=180;设置密码过期时间为180天。

(8.1)手动强制某个用户密码过期
ALTER USER '用户名'@'IP或者域名' PASSWORD EXPIRE;
1
假如我们要将admin账号强制密码过期,可以这样做:

ALTER USER 'admin'@'%' PASSWORD EXPIRE; --强制admin用户密码过期
1
重启使用admin登录时,会弹出重置密码界面。
 文章来源地址https://www.toymoban.com/news/detail-617605.html

到了这里,关于安装 mysql8.0-docker版安装 安装docker2022版(对大家有帮助)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos docker安装mysql8

    1、创建挂载文件夹 mkdir -p /mydata/mysql/log mkdir -p /mydata/mysql/data mkdir -p /mydata/mysql/conf 2、拉取镜像最新版本,如果写 mysql:8.0.26可以指定版本 docker pull mysql 3、启动命令 docker run -p 3306:3306 --restart=always -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/my

    2024年02月07日
    浏览(57)
  • docker 安装mysql8 实现互为主从

    先按照这个目录结构创建。 mysql.conf 配置,mysql的基础可以在此添加 mysql-master下conf配置 mysql-slave下conf配置  注意我指定了数据库为test_db  注意:我使用的mysql用户为默认root,可以自行创建其他用户访问数据库。 在mysql文件夹下执行   如上图所示表示mysql创建成功。 获取主服

    2024年02月22日
    浏览(49)
  • Docker 安装 MySQL5.7 和 MySQL8

    拉下来镜像后 执行 docker images 此时我们已经有这个镜像了。 在根目录下创建 app , 在 app 目录下创建 mysql57 文件夹。 命令如下: 参数说明 : -d :将容器在后台运行(以分离模式运行)。 -p 3306:3306 :将宿主机的 3306 端口映射到容器的 3306 端口,这样可以通过宿主机的 3306

    2024年02月04日
    浏览(56)
  • docker安装mysql8.0.20并远程连接

    今天docker安装mysql8.0.20捯饬了半天,主要是挂载问题和连接问题,索性记录一下。网上很多千篇一律,还有很多就是过时了,那还是我自己上场吧。大家看的时候,请睁大眼睛,按步骤来。 此处默认你已经搭建好了docker环境 docker pull mysql:8.0.20 docker run -p 3306:3306 --name mysql -e

    2024年04月22日
    浏览(33)
  • Docker安装Mysql8.0,并配置忽略大小写

    -e MYSQL_ROOT_PASSWORD :设置mysql密码 -v /home/mysql/:/var/lib/mysql:挂载磁盘实现数据持久化 –lower_case_table_names=1 :忽略大小写,docker mysql默认区分大小写的,只能在初始化时配置,不然会报 注:参数顺序一定要对,–lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是mys

    2024年02月11日
    浏览(46)
  • Linux aarch64架构中使用docker安装mysql8

    1、遇到问题: 官网下载mysql包,安装完成后,启动mysql一直显示-bash: ./mysqld: 无法执行二进制文件。 网上找了各种资料,但是都没有作用,怀疑自己操作姿势不正确,以为是自己包下错了(其实也是包不对),重新下载了不同的各种包,换了各种安装方法,发现仍旧启动不了

    2024年02月14日
    浏览(49)
  • 写最好的Docker安装最新版MySQL8(mysql-8.0.31)教程(参考Docker Hub和MySQL官方文档)

       MySQL官方安装包下载地址:   https://dev.mysql.com/downloads/mysql/      Docker Hub官方网址:   https://hub.docker.com/     如果需要了解Centos7下MySQL5.7最新版的安装部署,可参考教程【最新MySQL-5.7.40在云服务器Centos7.9安装部署)】。      本教程是笔者参考Docker Hub和MySQL官

    2024年02月01日
    浏览(45)
  • Linux Docker安装 Docker-Compose安装 Docker安装Mysql8 Nacos OpenResty Redis Kafka ElasticSearch MinIO..

    Docker安装 Docker默认镜像源下载太慢,可以调整为国内镜像源 为了验证是否切换成功,可以使用 docker info 查看,会显示如下信息: 安装Docker-Compose,这里下载的是最新版本v2.5.0,安装流程如下: 修改密码: select NOW() 时间如果小了8小时,执行如下操作同步时区即可: 如果要安

    2024年02月02日
    浏览(45)
  • centos7在线安装 jdk1.8+tomcat+mysql8+nginx+docker

    centos7 在线安装jdk1.8 安装tomcat mysql8 nginx docker

    2024年02月11日
    浏览(46)
  • ubuntu安装mysql8指定数据目录

    Ubuntu 22.04.3 LTS 更新到最新版本 添加 MySQL APT 仓库 执行命令期间需要按回车键,控制台提示 Press [ENTER] to continue or Ctrl-c to cancel. 安装 MySQL 在安装过程中,系统会提示你设置 root 用户的密码。 配置数据挂载目录 新目录为 /data/mysqldata 新建数据目录 将文件copy(MySQL 默认的数据目

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包