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端口没人使用
发表回复