Mysql的安装

2024-06-26 07:01

环境准备

Mysql的安装

https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html

下载地址

https://mirror.tuna.tsinghua.edu.cn/mysql/downloads/

1、查看mysql的版本信息

mysql -V

2、安装mysql

1、在线安装

以 mysql:5.7.26


第一种方式:配置myslq安装源

yum install wget

yum -y install yum-utils

#wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

rpm -ivh mysql57-community-release-el7-10.noarch.rpm 
#sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

#sudo dnf config-manager --disable mysql80-community
sudo dnf config-manager --enable mysql57-community

vi /etc/yum.repos.d/mysql-community.repo
###########################################
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


######################或者############################
yum install -y mysql-community-common-5.7.33 mysql-community-server-5.7.33 mysql-community-client-5.7.26 mysql-community-libs-5.7.33

yum install -y mysql-community-common-5.7.33 mysql-community-server-5.7.33 mysql-community-client-5.7.33 mysql-community-libs-5.7.33
yum clean all
yum makecache

yum search mysql

yum错误

[root@localhost ~]# cd /var/lib/rpm
[root@localhost rpm]# ll
total 97412
-rw-r--r--. 1 root root  1839104 Jul 11 06:45 Basenames
-rw-r--r--. 1 root root     8192 Jul 11 06:41 Conflictname
-rw-r--r--. 1 root root   270336 Jul 11 06:48 __db.001
-rw-r--r--. 1 root root    81920 Jul 11 06:48 __db.002
-rw-r--r--. 1 root root  1318912 Jul 11 06:48 __db.003
-rw-r--r--. 1 root root   606208 Jul 11 06:45 Dirnames
-rw-r--r--. 1 root root    16384 Jul 11 06:45 Group
-rw-r--r--. 1 root root    12288 Jul 11 06:45 Installtid
-rw-r--r--. 1 root root    28672 Jul 11 06:45 Name
-rw-r--r--. 1 root root    16384 Jul 11 06:41 Obsoletename
-rw-r--r--. 1 root root 93446144 Jul 11 06:45 Packages
-rw-r--r--. 1 root root  1957888 Jul 11 06:45 Providename
-rw-r--r--. 1 root root   180224 Jul 11 06:45 Requirename
-rw-r--r--. 1 root root    49152 Jul 11 06:45 Sha1header
-rw-r--r--. 1 root root    32768 Jul 11 06:45 Sigmd5
-rw-r--r--. 1 root root     8192 Jul 11 06:41 Triggername
[root@localhost rpm]# rm -rf __db.*    # 清除原 rpmdb 文件
[root@localhost rpm]# rpm --rebuilddb  # 重建 rpm 数据库
[root@localhost rpm]# yum clean all    # 清除所有 yum 缓存

卸载mysql

yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
rpm -qa|grep mysql
rpm -qa | grep -i mysql

rpm -e MySQL-serverxxx
rpm -e MySQL-clientxxx

find / -name mysql

安装mysql

yum install -y mysql-community-common-5.7.23 mysql-community-server-5.7.23 mysql-community-client-5.7.23 mysql-community-libs-5.7.23

启动mysql测试

systemctl start  mysqld.service

查看mysql日志

cat /var/log/mysqld.log
ss -lnt|grep 3306

修改mysql配置

vi /etc/my.cnf
###############
[mysqld]
validate_password=off

修改密码

alter user 'root'@'localhost' identified by '123'
###退出重新登录

开启防火墙

firewall-cmd --list-all-zones    #查看所有的zone信息
firewall-cmd --add-port=3306/tcp --permanent //打开3306端口
firewall-cmd --reload   #重新加载配置
以MySQL8.0为例

1、检查系统中是否有系统自带的mysql服务,如果有的话先卸载自带


​ 查看自带安装的mysql

rpm -qa|grep -i mysql

查看mysql的运行状态并停止

service mysqld status
#并
service mysqld stop
service mysqld start

卸载安装的mysql(安装包服务版本依据自己系统的修改)


(1)卸载相关服务

rpm -ev mysql-community-client-8.0.32-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.32-1.el7.x86_64 --nodeps
rpm -ev mysql-community-server-8.0.32-1.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-8.0.32-1.el7.x86_64 --nodeps

(2)查询并删除Mysql相关目录

find / -name mysql
rm -rf /var/lib/mysql/
rm -rf /usr/lib64/mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /etc/selinux/targeted/tmp/modules/100/mysql
#删除my.cnf:
rm-rf /etc/my.cnf
#删除MySQL的默认密码:
rm-rf /root/.mysql_sercret

(3) 查询并删除mariadb的安装包

#查询:
rpm -qa | grep mariadb
#卸载:
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
#检查卸载情况,如果还有继续删除卸载
rpm -qa|grep -i mysql

安装MySQL并配置


1、配置Mysql 8.0安装源

yum -y localinstall mysql80-community-release-el8-1.noarch.rpm

2、安装MySQL服务

yum install mysql-community-server

**注意:**安装服务如果提示 Failing package is: mysql-community-client-8.0.32-1.el8.x86_64


GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql这个错误,


如果是centos8:

cd /etc/yum.repos.d/
sed -i ‘s/mirrorlist/#mirrorlist/g’ /etc/yum.repos.d/CentOS-*
sed -i ‘s|#baseurl=http://mirror.centos.org|baseuri=http://vault.centos.org|g’ /etc/yum.repos.d/CentOS-*
yum update

执行以下命令重新获取

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

再重新尝试安装,安装成功


3、启动MySql服务

systemctl start mysqld
systemctl enable mysqld
service mysqld status

4、查看默认密码

grep 'temporary password' /var/log/mysql/mysqld.log

5、登录MySQL重置密码

 mysql -uroot -p
 
 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
 
 #ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(提示这个错误是mysql密码初始设置规则为大小写字母+数字+特殊字符)
#先按照规则设置一个密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Test@321#!';

#修改mysql密码校验规则与密码长度(必须先修改密码,否则这个无法执行)
set global validate_password.policy=0;
set global validate_password.length=1;

6、授权


(1)远程登录授权

update mysql.user set host='%' where user="root";
flush privileges;
select user,host from mysql.user;

(2)用户授权

grant all privileges on *.* to 'root'@'%';
flush privileges;
show grants for root@'%'\G;

7、查看并开启防火墙3306端口

#查看:
firewall-cmd --query-port=3306/tcp
#开启:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重载:
firewall-cmd --reload

脚本

#/bin/bash
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*


mkdir /home/etc

cp /etc/yum.repos.d /home/etc 

yum makecache
yum update -y

yum install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm -y
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-server --nogpgcheck -y

systemctl start mysqld
systemctl enable mysqld
service mysqld status
/var/log/mysql
grep 'temporary password' /var/log/mysql/mysqld.log>> /home/mysql.log
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
2、源码安装

下载myslq8.0源码


https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.35.tar.gz


准备

# 检查用户组是否存在
cat /etc/group | grep mysql
# 检查用户是否存在
cat /etc/passwd | grep mysql
# 添加用户组
groupadd mysql

# 添加用户
useradd -r -g mysql -s /bin/false mysql

#如果是centos8:
cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

安装gcc

yum search gcc-toolset
yum install -y gcc-toolset-xx 
scl enable gcc-toolset-10 bash #切换的gcc10版本

编译

#cmake .. -D CMAKE_C_COMPILER=/usr/bin/gcc -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql/mysql8 -#DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=/opt/mysql/boost


3、docker安装

docker安装mysql8.0


配置docker-compose

sudo yum install -y yum-utils && sudo yum-config-manager --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
yum install --allowerasing docker-ce docker-ce-cli containerd.io docker-compose-plugin
systemctl enable --now docker
systemctl start docker

yum install python-pip python-dev
pip install docker-compose


yum install epel-release python3-pip python3-devel
pip3 install --upgrade pip  --default-timeout=1000
pip3 install docker-compose --default-timeout=1000
docker-compose -v

设置国内镜像源

vim /etc/docker/daemon.json
  {
          "registry-mirrors":
          [
            "https://dockerhub.azk8s.cn",
            "https://registry.docker-cn.com",
            "https://registry.docker-cn.com",
            "https://docker.mirrors.ustc.edu.cn",
            "https://mirror.ccs.tencentyun.com",
            "https://docker.mirrors.ustc.edu.cn",
            "https://hub-mirror.c.163.com",
            "https://registry.docker-cn.com"
          ]
  }

重启docker服务使配置生效

systemctl daemon-reload 
systemctl restart docker

docker-compose mysql8.0

version: '3.1'
services:
  mysqldb:
    restart: always
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "Test@123#!"
      MYSQL_ROOT_HOST: "%"
      TZ: Asia/Shanghai
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    ports:
      - 3306:3306
    volumes:
      - "/opt/mysql/mysql8.0/conf/my.cnf:/etc/mysql/my.cnf"
      - "/opt/mysql/mysql8.0/data:/var/lib/mysql"
  adminer:
    image: adminer
    restart: always
    ports:
      - 13306:8080

my.cnf

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
skip-name-resolve
user=mysql
ngram_token_size=2
default_password_lifetime=0
port=3306
#设置安装目录

#数据存放目录

#允许最大连接数
max_connections=1000
#服务端默认使用的字符集
character-set-server=utf8mb4
#创捷新表时默认的储存引擎
default-storage-engine=INNODB
#忘记密码时使用
#skip-grant-tables
#不区分大小写
lower_case_table_names=1
#认证方式
default_authentication_plugin=mysql_native_password
max_allowed_packet=500M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wait_timeout=28800
interactive_timeout=28800
max_connect_errors=100
max_user_connections=0
#日志文件大小
# max_binlog_size=100M
 
#
#开启二进制日志 
log-bin=mysql-bin

#标识唯一id(必须),一般使用ip最后位 
server-id=1
#不同步的数据库,可设置多个 
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个 
#binlog-do-db=test
 
#设置binlog的格式
binlog_format=statement
 
max_binlog_size=500M
sync_binlog=1
expire-logs-days=7
slow_query_log
docker-compose up -d
docker ps -a

备注 https://download.docker.com/linux/centos/8/x86_64/stable/Packages/

4、离线安装

参考mysql官网

相关新闻
热点
投票
查看结果
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量:

© 2025 个人网站 版权所有

备案号:苏ICP备2024108837号

苏公网安备32011302322151号