mysql数据库安装

一、glibc源码安装

1、准备环境

  1. 关闭selinux
[root@db1 ~]# getenforce        #查看selinux状态
Permissive        #selinux的三种状态:enforcing:强制模式,permissive:警告模式,disabled:关闭

[root@db1 ~]# vim /etc/selinux/config   #修改配置文件,永久更改selinux开机状态
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@db1 ~]# reboot     #重启服务器
[root@db1 ~]# getenforce
  1. 关闭firewalld
[root@db1 ~]# systemctl disable firewalld --now
[root@db1 ~]# systemctl status  firewalld
  1. 卸载mariadb
[root@db1 ~]# rpm -qa | grep mariadb     #查看是否安装mariadb
[root@db1 ~]# yum remove mariadb         #卸载mariadb
[root@db1 ~]# yum remove mariadb-lib    

2、安装mysql

  1. 安装依赖包
[root@db1 ~]# yum -y install cmake gcc-c++ ncurses-devel perl-data-Data-Dumper boost boost-doc boost-devel numactl libaio
  1. 上传包并解压
[root@db1 ~]# tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@db1 ~]# mv mysql-5.7.20-linux-glibc2.12-x86_64  /usr/local/mysql/
[root@db1 ~]# groupadd mysql
[root@db1 ~]# useradd -r -g mysql mysql
[root@db1 ~]# mkdir /usr/local/mysql/data
[root@db1 ~]# mkdir /usr/local/mysql/log
[root@db1 ~]# mkdir /usr/local/mysql/tmp
[root@db1 ~]# mkdir /usr/local/mysql/run
[root@db1 ~]# chown -R mysql.mysql /usr/local/mysql
  1. 修改配置文件(根据实际需求自定义参数)
[root@db1 ~]# vim  /etc/my.cnf
[mysqld]
user=mysql
port=3306
default-storage-engine=InnoDB

basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
log-error=/usr/local/mysql/log/mysql-error.log
pid-file=/usr/local/mysql/run/mysqld.pid

explicit_defaults_for_timestamp=true
lower_case_table_names=1				
max_allowed_packet = 1000M							
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_tmp_tables=100
max_heap_table_size=1024M
tmp_table_size=1024M
slave_skip_errors=1062
max_connections=10000

[client]
port=3306
socket=/usr/local/mysql/tmp/mysql.sock

[mysqld_safe]
open-files-limit=8192
  1. 修改环境变量:
[root@db1 ~]# echo "PATH=/usr/local/mysql/bin/:$PATH" >> /etc/profile   #添加配置
[root@db1 ~]# source /etc/profile							#重新加载配置,使配置生效
  1. 执行初始化命令:
[root@db1 ~]# /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --initialize

3、连接mysql

  1. 初始化成功后,查看日志获取root初始密码
[root@db1 ~]# cat /usr/local/mysql/log/mysql-error.log
2023-02-06T07:29:57.376120Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-02-06T07:29:57.451967Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-02-06T07:29:57.524680Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0eac1775-a5f0-11ed-bbff-fefcfe926edb.
2023-02-06T07:29:57.528768Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-02-06T07:29:57.533491Z 1 [Note] A temporary password is generated for root@localhost: AyEshG-6!:1)

#上面输出中A temporary password is generated for root@localhost:后面的 AyEshG-6!:1) 为mysql的初始化密码

  1. 使用初始密码连接mysql,连接后要立即修改root密码
[root@db1 ~]# mysql -uroot -p'AyEshG-6!:1)'
mysql>
mysql> alter user root@"localhost" identified by "Mysql.2022";
mysql>
  1. 授权远程连接用户:
mysql> grant all on *.* to mysql@"%" identified by "Mysql.2022";

4、扩展

1、如果登录root用户时提示密码过期无法登录,可以用一下方法解决:
设置密码过期规则(取消密码过期)

  1. 用忽略授权表的方式进入mysql
[root@db1 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables
  1. 进入mysql,查看root用户的详细信息
sql> select * from mysql.user where user='root'\G
password_expired: Y
  1. 把password_expired 改成不过期
sql> update user set password_expired='N' where user='root'
sql> flush privileges;   #立即生效

2、将mysql加入到系统服务中
如果是自己通过tar包安装的Mysql,不会自动添加到系统服务中,可通过如下方式,自己添加。

  1. 查看pid路径:
  方法一:
	1.先启动一下mysql
	[root@db1 ~]# ${mysql}/support-files/mysql.server start
	2.成功后,通过ps命令查看pid文件路径
	[root@db1 ~]# ps -ef | grep mysql
  方法二:
	直接查看mysql配置文件my.cnf
	[root@db1 ~]# cat /etc/my.cnf | grep pid-file
	pid-file=/usr/local/mysql/run/mysql.pid
  1. 在/usr/lib/systemd/system目录下增加mysqld.service,内容如下
[root@db1 ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/mysql/run/mysql.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.server reload
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PrivateTmp=false
[Install]
WantedBy=multi-user.target
  1. 重新载入单元,扫描新的或有变化的单元,使刚刚添加的mysql.service生效
[root@db1 ~]# systemctl daemon-reload
  1. 切换服务
[root@db1 ~]# ${mysql}/support-files/mysql.server stop    #停服务

[root@db1 ~]# systemcel enable mysql --now        #使用systemctl启动服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值