1.Mysql安装

1、RPM安装

1.1 下载

rpm说明
官方下载地址
清华镜像
libaio

查看Linux操作系统的版本

cat /proc/version
Linux version 3.10.0-514.21.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jun 20 12:24:47 UTC 2017

1.2 安装

按照依赖顺序一次安装rpm包

2、二进制文件安装

1.1 安装

# 1)安装依赖解压
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

tar -zxvf mysql-5.7.31-el7-x86_64.tar.gz
mkdir mysql 
mv mysql-5.7.31-el7-x86_64 mysql/
cd /usr/local
ln -s /root/mysql/mysql-5.7.31-el7-x86_64 mysql

# 2)准备导入导出的文件目录
#secure_file_priv系统变量 导入导出准备参数设置
cd /root/mysql/mysql-5.7.31-el7-x86_64
mkdir -p mysql-files /opt/mysql/data
chown mysql:mysql mysql-files
chown mysql:mysql /opt/mysql -R
chmod 750 mysql-files

# 3)初始化数据库配置
bin/mysqld --initialize --user=mysql --basedir=/root/mysql/mysql-5.7.31-el7-x86_64 --datadir=/opt/mysql/data 
#root@localhost: rC8k%fWeF+c.
#./bin/mysqld --verbose --help | grep -C 5 'initialize'
# 可以在此文件中进行修改
# /opt/mysql/mysql/etc/my.cnf
bin/mysql_ssl_rsa_setup
#https://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html

# 4)启动数据库 此参数也可以通过-defaults-file=/etc/my.cnf提供
bin/mysqld_safe --user=mysql --basedir=/root/mysql/mysql-5.7.31-el7-x86_64 --datadir=/opt/mysql/data --pid-file=mysqld_safe.pid &
# 报错情景
#[root@iz3ic059y15k8z337brsikz mysql]# 2021-02-01T07:32:59.296646Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
# mkdir -p /var/log/mariadb/ & touch /var/log/mariadb/mariadb.log
# chown mysql:mysql /var/log/mariadb/mariadb.log
# chmod 750 /var/log/mariadb/ -R

# 加入开启自启动
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

# 5)创建数据库用户
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123';
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'abc123';
CREATE USER 'root'@'::1' IDENTIFIED BY 'abc123';

#error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (40)'
#ps -ef | grep mysqld 查看--socket 选项活着在启动文件中指定参数
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

3、docker安装

1.1 安装docker

# 1) 添加docker稳定地址,选择阿里云或者清华
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum list docker-ce --showduplicates | sort -r 第二列冒号到横杆之间
sudo yum install docker-ce-20.10.3 docker-ce-cli-20.10.3 containerd.io

# 2) 启动docker,验证
sudo systemctl start docker
sudo docker run hello-world
docker ps -a

1.2 安装mysql镜像

# 1) 安装mysql镜像
docker pull mysql/mysql-server:5.7
docker logs mysql1 2>&1 | grep GENERATED

# 2) 连接容器里mysql的服务
docker exec -it mysql1 mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123';

# 3)查看配置容器mysql的目录,重点为my.cnf
docker exec -it mysql1 bash
cat /etc/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
docker stop mysql1

# 4) 配置文件中的目录可之久性挂载在host文件目录中
# Source对应的事host本级目录,Destination对应的是容器里面的目录,可以将其挂载在特定驱动的目录上做持久话
docker inspect -f '{{json .Mounts}}' mysql1
[{"Type":"volume","Name":"19d17fadf7a355634b1c813e56349610bdba90b6e84e3992e1a893891683bd17","Source":"/var/lib/docker/volumes/19d17fadf7a355634b1c813e56349610bdba90b6e84e3992e1a893891683bd17/_data","Destination":"/var/lib/mysql","Driver":"local","Mode":"","RW":true,"Propagation":""}]
# 查看网络,其中21f94是network的id,172.17是暴露出的ip地址
docker inspect --format '{{range .NetworkSettings.Networks}}{{println .NetworkID}}{{println .IPAddress}}{{end}}' mysql1
21f94f4c338400310ea522475c0eb609158be3708b2860666997b2610d07c8b0
172.17.0.2
# 查看端口地址,其中对外的端口可以在启动容器时暴露出来
docker inspect --format '{{json .NetworkSettings.Ports}}' mysql1
{"3306/tcp":null,"33060/tcp":null}

# 需要提前创建好,此方式为bind模式和vloumn有所区别
docker run --name=mysql1 \
--mount type=bind,src=/opt/mysql/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/opt/mysql/datadir,dst=/var/lib/mysql \
-d mysql/mysql-server:5.7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值