当前位置:   article > 正文

centos7下mysql8.0.29的安装以及开启ssl访问_mysql8.0.29启动centos

mysql8.0.29启动centos

1 准备工作

  1. 下载mysql组件包,mysql_rpm_.tar.gz 提取码: qdfw
  2. 把包拷贝到linux目录下,这里使用/home/yk(本机CentOS Linux release 7.9.2009 (Core)
  3. 解压缩包,tar -xzvf mysql_rpm.tar.gz
  4. 进入mysql_rpm目录里,cd mysql_rpm
  5. 执行yum localinstall -y *.rpm
  6. 如果遇到下面提示,请删除mariadb:
---> Package mariadb-libs.x86_64 1:5.5.68-1.el7 will be obsoleted  # 安装过程中遇到的提示
删除方法:
rpm -qa|grep mariadb  # 查找
yum remove mariadb-libs  # 删除
  • 1
  • 2
  • 3
  • 4

2 修改mysql的一些配置信息

  1. 启动服务systemctl start mysqld.service

  2. 查看初始密码grep ‘temporary password’ /var/log/mysqld.log | awk ‘{print$13}’,最好赋值下

    init_password=$(grep 'temporary password' /var/log/mysqld.log | awk '{print$13}')
    
    • 1
  3. 登录并修改密码为Mysql-new

    mysqladmin -uroot --password=$init_password password Mysql-new1
    
    • 1
  4. 修改密码策略使之可以设置简单密码

    mysql -u root --password=Mysql-new1 -e "set global validate_password.policy=0;set global validate_password.length=1;"
    
    • 1
  5. 修改密码为123456

    mysqladmin -uroot --password=Mysql-new1 password 123456
    
    • 1
    创建数据库并导入数据:
    mysql -u root --password=密码 -e "create database 数据库名;"
    mysql -u root --password=密码 数据库名 < mydata.sql
    
    • 1
    • 2
    • 3

3 指定用户使用ssl连接

选择数据库
mysql> create user 'user'@'%';

创建用户
mysql> grant all on *.* to 'user'@'%';
Query OK, 0 rows affected (0.01 sec)

分配权限
mysql> alter user 'user'@'%' identified by '123456' require ssl;
Query OK, 0 rows affected (0.01 sec)

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

接下来可以测试下,不带-h会以loacalhost登录,且登录不了,因为创建的用户是'user'@'%',想要本地登录还要创建'user'@'localhost'
cd /var/lib/mysql
mysql -uuser -p123456 -h0.0.0.0 --ssl-cert=./client-cert.pem --ssl-key=./client-key.pem
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

4 gorm使用ssl连接mysql

import (
	"crypto/tls"
	"crypto/x509"
	"time"

	dMsql "github.com/go-sql-driver/mysql"
	"github.com/pkg/errors"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func createTLSConf() tls.Config {
	rootCertPool := x509.NewCertPool()
	clientCert := make([]tls.Certificate, 0, 1)
	
	# 这个证书可以从mysql服务器的/var/lib/mysql目录下里拷贝出来
	certs, err := tls.LoadX509KeyPair("cert/mysql_cert/client-cert.pem", "cert/mysql_cert/client-key.pem")  
	if err != nil {
		logger.Log.Fatal().Err(err).Msg("初始化gorm失败,程序退出")
	}
	clientCert = append(clientCert, certs)
	return tls.Config{
		RootCAs:            rootCertPool,
		Certificates:       clientCert,
		InsecureSkipVerify: true, // needed for self signed certs
	}
}

func InitGorm(dbDSN string, opts ...gorm.Option) (*gorm.DB, error) {
	tlsConf := createTLSConf()
	err := dMsql.RegisterTLSConfig("custom", &tlsConf)
	if err != nil {
		logger.Log.Fatal().Err(err).Msg("初始化gorm失败,程序退出")
	}

	db, err := gorm.Open(mysql.Open(dbDSN), opts...)
	if err != nil {
		return nil, err
	}
	rawDb, err := db.DB()
	if err != nil {
		return nil, err
	}

	rawDb.SetMaxIdleConns(defaultMaxIDleConnections)
	rawDb.SetMaxOpenConns(defaultMaxOpenConnection)
	rawDb.SetConnMaxLifetime(defaultMaxLifeTime)
	return db, nil

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/815732
推荐阅读
相关标签
  

闽ICP备14008679号