首页 > 数据库 >ubuntu 安装挂载mysql

ubuntu 安装挂载mysql

时间:2023-04-20 21:48:19浏览次数:60  
标签:4.4 mysql sudo user ubuntu 挂载 docker bash

因为有两台电脑,所以准备把ubuntu电脑作成对外服务提供,各种数据库,中间件都使用docker安装管理,然后挂载配置和日志到本地,提供给另一台电脑的对外服务。

安装docker

sudo apt search docker
sudo apt install docker.io

看到很多安装都繁琐,我也还是在初步使用,如上安装暂时没有发现有什么问题,出现问题再更改吧。

# 简单的docker命令
sudo docker ps -a               # 查看容器状态,在这可以看到容器的名字,id,创建时间和端口信息
sudo docker images              # 查看镜像
sudo docker pull something      # 拉取something镜像
sudo docker run -d --name abaaba -p src_port:container_port something      #后台运行something,链接本地src_port端口到container_port容器端口
sudo docker exec -it container_id /bin/bash        # 进入指定id的容器
sudo docker rm -f container_id                     # 删除指定id的容器
sudo docker cp src_file abaaba:/d/a                # 复制主机src_file文件到abaaba容器根目录下d文件夹内的a文件中;也可以反过来用,把容器内文件复制到本地

docker安装mysql

sudo docker pull mysql
# 如上把刚拉取的mysql跑起来看看具体信息
sduo docker run -d -p 3306:3306 --name mysql_service -e MYSQL_ROOT_PASSWORD=root  mysql
sudo docker exec -it mysql_service /bin/bash

如下是mysql容器内信息:

# 可以看到容器主体信息就这样,是一个oracle打造的linux server,专门供给oracle类的服务,比如mysql
bash-4.4# cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="8.7"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.7"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:7:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.7
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.7
bash-4.4# mysql --help | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
bash-4.4# vim /etc/mysql/my.cnf
bash: vim: command not found
# 各种command not found
bash-4.4# apt install aaa
bash: apt: command not found
bash-4.4# dnf install vim
bash: dnf: command not found
bash-4.4# yum install aaa
bash: yum: command not found
bash-4.4# 

本来是找到了conf文件,想直接在容器内部编辑一下的,结果啥习惯用的命令都没有,用yum,apt都试了一下,看来不是redhat和debian包装的豁,然后搜了一下oracle linux的包管理器(因为上面查信息看到的就是这个嘛),发现它们可以用dnf(某博客找到的,又拿来碰了一下),骗鬼的。干脆放弃,反正可以用docker cp,接下来就确定一下mysql的几个重要目录:logs,data和conf目录

bash-4.4# ls /var/lib | grep mysql
mysql
mysql-files
mysql-keyring
bash-4.4# ls /etc/mysql/       
conf.d  
bash-4.4# ls /var/log
mysqld.log
bash-4.4# 

好,确定了那几个默认路径没错,这就算是目标所在了,默认信息可以在docker官网上看,然后对照,讲究个因地制宜。

挂载mysql重要文件到本地

知道不少信息以后就开始配置,一个是挂载mysql的日志,conf和data目录到本地,另一个就是设置mysql远程访问权限。

sudo docker run -d --restart=always -p 3306:3306 \
-v /opt/services/mysql/conf:/etc/mysql/conf.d \
-v /opt/services/mysql/logs:/var/log \
-v /opt/services/mysql/data:/var/lib \
--name mysql_service \
-e MYSQL_ROOT_PASSWORD=123456

# 看看跑起来了没
sudo docker ps -a
# 进入容器进行远程访问设置
sudo docker exec -it mysql_service /bin/bash

如上,-d参数设置容器后台运行,链接好默认端口,-v参数链接本地和容器目录,也就是前面找的那几个data,log和conf文件夹了,再来设置容器名,还有几个容器内部的环境参数,具体可参考上面docker官网的信息,这里是指定一个root用户的密码,方便后续设置。

设置远程访问

bash-4.4# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

进入mysql的shell界面以后,进行以下设置:

# 进入mysql database
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
# 查看用户信息,主要确定是否有两个root用户
mysql> select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

# 删掉主机不限定的root用户,方便后面修改权限
mysql> delete from user where host='%' and user='root';
Query OK, 1 row affected (0.01 sec)

mysql> select host, user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

# 把删掉的用户添加回来
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

# 刷权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

# 设置远程访问
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> quit;

上面设置要根据不同版本有所变通,然后检验一下远程访问,我用另一台电脑,连上同一个wifi,两台电脑就在同一个局域网了,网络连通性ok,然后使用服务的电脑输入mysql -h 192.168.0.100 -uroot -p命令,要记得在使用服务的电脑也装上mysql客户端并确保命令可用,当然也可以用其他工具测试,比如navicat,可惜付费,另外就是注意ip问题了。

好,搞定。

标签:4.4,mysql,sudo,user,ubuntu,挂载,docker,bash
From: https://www.cnblogs.com/Jack-artical/p/17338174.html

相关文章

  • 玩一下mysql
     我电脑版本的mysql是5.7.29,此时InnoDB已经是默认的存储引擎存储引擎是基于表的,而不是数据库MyISAM和InnoDB有什么区别?MyISAM不支持事务和行级锁,不支持外键,最大缺陷为崩溃后无法安全恢复。Mysql日志:常见的日志都有什么用?(针对InnoDB引擎)错误日志、二进制日志、一般查询日志......
  • MySQL大量脏数据,如何只保留最新的一条?
    因为系统的一个Bug,导致数据库表中出现重复数据,需要做的是删除重复数据且只保留最新的一条数据。具体场景是这样的有张订单关联额外费用表,而且一个订单号(order_no)记录只能关联同一个费用(cost_id)一次,但是数据库中出现了同一个订单号关联同一个费用n次当然有人会说上面的问......
  • MySQL 中常见的几种高可用架构部署方案
    MySQL中的集群部署方案前言MySQLReplicationInnoDBClusterInnoDBClusterSetInnoDBReplicaSetMMMMHAGaleraClusterMySQLClusterMySQLFabric参考MySQL中的集群部署方案前言这里来聊聊,MySQL中常用的部署方案。MySQLReplicationMySQLReplication是......
  • Mysql添加用户和设置权限的操作方法
    Mysql添加用户和设置权限的操作方法 更新时间:2022年07月28日09:42:08 作者:怪 咖@  https://www.jb51.net/article/257120.htm这篇文章主要介绍了Mysql添加用户和设置权限的操作方法,主要包括管理用户,权限控制的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具......
  • django中开启事务,GEO地理位置信息、持久化方案、主从复制原理和方案、哨兵高可用、集
    django中开启事务#django中如何开启事务全局开启:每个http请求都在一个事务中DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'lqz','HOST'......
  • MYSQL如何开启BINLOG
    看到网上不同的开启方法,有直接如下设置的:/etc/my.cnf...log_bin...也有设置:...log_bin=ONlog_bin_basename=/var/lib/mysql/mysql-binlog_bin_index=/var/lib/mysql/mysql-bin.index...三个参数来指定,第一个参数是打开binlog日志第二个参数是binlog日志的基本文件名,后面会追加标......
  • 智慧路灯杆 多功能杆挂载气象监测设备有哪些要求
    智慧路灯杆多功能杆具有强大的设备兼容挂载能力,支持集中挂载包括视频监控、气象监测、环境监测等多类型数据采集设备,实现一杆多用。 由于户外环境变化多端,当出现雨天、大雾天、雪天等恶劣气候时,路面湿滑,能见度降低,容易产生交通事故。而智慧路灯杆多功能杆搭载气象监测设备,可......
  • 聊聊MySQL锁
    操作数据库的操作分两类,操作表(DDL)和操作表数据(DML)DDL锁MySQL5.6以前,没有发布OnlineDDL功能,执行DDL主要是通过copy和inplace,这两种方式都会全程锁表,无法执行DMLOnlineDDL就是执行DDL时可以同时执行DMLDML锁DML操作会根据索引及数据变更等加相应锁粒度行级锁加锁......
  • linux下安装mysql
    1、查看是否已经安装Mysqlrpm-qa|grepmysql2、上传mysql的安装包到linux下,(.tar.gz版本的)3、解压安装包tar-zxvfmysql-5.7.35-linux-glibc2.12-x86_64.tar.gz4、先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:检查是否有mysql用户组:groupsmysql添加......
  • 基于SSM框架和MySQL的仿天猫商城
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]1.项目简介天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。作为模拟天猫商城系统的核心组成部分之一,采用SSM框架......