三种方式安装MySQL及部分演示

1、 二进制方式安装mysql


从https://dev.mysql.com/downloads/ 下载需要的版本,这里下载的是mysql-8.0.25
然后开始部署,过程如下;


[root@master ~]# cd /usr/local #进入到目录中
[root@master mysql]# wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz #下载二进制包


[root@master ~]# tar Jxvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

[root@master ~]# mv mysql-8.0.32-linux-glibc2.12-x86_64/ mysql
[root@master ~]# mkdir /usr/local/mysql/data
[root@master ~]# mkdir /usr/local/mysql/etc
[root@master ~]# mkdir /usr/local/mysql/logs


[root@master ~]# useradd mysql #给它创建个用户
[root@master ~]# vim /usr/local/mysql/etc/my.cnf 创建配置文件
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/logs/mysqld.log
pid-file=/usr/local/mysql/logs/mysqld.pid

chown -R mysql:mysql   /usr/local/mysql  #很关键,如果不把所有者给mysql的话就会出现以下情况
然后再 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cat > /etc/systemd/system/mysqld.service << 'EOF'
[Unit]
Description=MySQL Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid
ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
Restart=on-failure
EOF
# 2. 重新加载 systemd
systemctl daemon-reload

# 3. 启动 MySQL
systemctl start mysql

# 4. 设置开机自启
systemctl enable mysql

# 5. 查看状态
systemctl status mysql
# 查看错误日志中的临时密码
grep 'temporary password' /usr/local/mysql/logs/mysqld.log

然后出现了以上错误,然后就find /usr/lib64 -name “libtinfo.so*”

ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5 3 #创建软连接

然后/usr/local/mysql/bin/mysql -uroot -p 就进来了,然后修改密码,ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’; 如下图

为了后续方便登录mysql,这里添加一个永久变量:

# 编辑profile文件
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

# 重新加载profile
source /etc/profile

# 测试
mysql -uroot -p

登陆成功:

2.使用 rpm 直接下载并安装仓库配置包

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm

sudo yum install -y mysql-community-server

3.Docker方式安装mysql

首先,需要安装docker引擎,操作如下:
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装必要工具
[root@master ~]# yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master ~]# yum makecache #更新缓存
[root@master ~]# dnf install -y docker-ce docker-ce-cli containerd.io
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker
[root@master ~]# docker version

然后测试一下,果然超时了
# 使用公共镜像加速器
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.nju.edu.cn"
  ]
}
EOF

然后再测试:行了

第二步:拉取mysql镜像
docker pull swr.cn-north-1.myhuaweicloud.com/iivey/mysql:8.0.23


第三步:运行docker镜像

docker run -itd \                           # 后台运行容器(-d),并保持交互(-it)
  -p 3306:3306 \                            # 将容器的3306端口映射到宿主机的3306端口(MySQL默认端口)
  --name mysql8 \                            # 给容器命名为"mysql8"
  --restart unless-stopped \                 # 容器退出时自动重启,除非手动停止
  -v /etc/localtime:/etc/localtime \         # 挂载宿主机的时区文件,保持容器时间与宿主机一致
  -v /dockerdata/mysql/db:/var/lib/mysql \   # 挂载数据目录:宿主机目录:容器目录,用于数据持久化
  -e MYSQL_DATABASE="iivey" \                 # 环境变量:创建名为"iivey"的数据库
  -e MYSQL_USER="iivey" \                     # 环境变量:创建普通用户"iivey"
  -e MYSQL_PASSWORD="mysql123" \               # 环境变量:设置普通用户"iivey"的密码
  -e MYSQL_ROOT_PASSWORD="root123" \           # 环境变量:设置root用户的密码
  swr.cn-north-1.myhuaweicloud.com/iivey/mysql:8.0.23 \  # 使用的镜像:华为云仓库的MySQL 8.0.23镜像
  --default-authentication-plugin=mysql_native_password \  # MySQL启动参数:使用原生密码认证插件(兼容旧版)
  --character-set-server=utf8 \                # MySQL启动参数:设置服务器字符集为UTF-8
  --collation-server=utf8_bin                  # MySQL启动参数:设置排序规则为二进制比较

上面docker run命令中, /dockerdata/mysql/db路径是宿主机的路径,需要先创建好。

最小化可用版本

docker run -d \
  -p 3306:3306 \
  --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=root123 \
  mysql:8.0

要记得3306端口没人使用

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注