Linux 安装 mysql

Linux 安装 mysql

一、官网下载

mysql 官网下载地址

Linux 操作系统 Red Hat Centos7

  • 选择不同的Linux对应的mysql版本

image-20230518134242928

二、Linux 安装

2.1 安装部署
  • tar 解压到指定路径
[root@linux-1 software]# tar -zxvf mysql-8.0.28-el7-x86_64.tar.gz -C /usr/local/
# mv 修改目录名称
[root@linux-1 software]# cd /usr/local
[root@linux-1 local]# mv mysql-8.0.28-el7-x86_64/ mysql
  • 配置环境变量
[root@linux-1 ~]# vim /etc/profile
# 添加环境变量
# export MYSQL_HOME=/usr/local/mysql
# export PATH=$MYSOL_HOME/bin:$PATH

#执行source命令使修改之后的配置生效 
[root@linux-1 ~]# source /etc/profile 

  • 创建 data 目录
# 在 / 目录下创建 /data/mysql 目录
[root@linux-1 data]# mkdir -p /data/mysql
[root@linux-1 data]# ls
mysql
  • 创建日志目录
# 在mysql安装目录下创建logs目录
[root@linux-1 mysql]# cd /usr/local/mysql/
[root@linux-1 mysql]# mkdir logs
[root@linux-1 mysql]# ls
bin  docs  include  lib  LICENSE  logs  man  README  share  support-files
  • 创建进程pid目录
# 创建目录 /var/run/mysqld
[root@linux-1 mysql]# mkdir -p /var/run/mysqld
  • 创建socket目录
[root@linux-1 mysql]# mkdir socket
[root@linux-1 mysql]# ls
bin  docs  include  lib  LICENSE  logs  man  README  share  socket  support-files
  • 配置my.cnf文件
# 进入/etc/目录下修改my.cnf文件[没有就创建一个]
[root@linux-1 data]# vim /etc/my.cnf

#使用客户端连接mysql需要配置client的socket
[client]
port=3306
socket=/usr/local/mysql/socket/mysql.sock
[mysqld]
user=root #root用户创建
port=3306
basedir=/usr/local/mysql #基础路径
datadir=/data/mysql #数据路径
socket=/usr/local/mysql/socket/mysql.sock #socket路径
log-error=/usr/local/mysql/logs/mysqld.log #日志路径
pid_file=/var/run/mysqld/mysqld.pid #pid路径
symbolic-links=0

Tip my.cnf

这里socket设置为/tmp/mysql.sock会报 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ ,因为路径需要权限/tmp属于系统文件路径,所以我们可以指定自己创建一个路径,这里我创建的是/usr/local/mysql/socket,mysql.sock是自动生成的。如果这里不配置[client]是无法命令行登录mysql客户端的,因为不设置socket默认也是/tmp/mysql.sock,所以我们要加上**[client]**的配置

2.2 初始化 mysql
  • 初始化mysql服务
# 进入mysql的bin目录下
[root@linux-1 etc]# cd /usr/local/mysql/
# 执行初始化配置 [如果需要重新初始化,先删除mysql数据路径的文件 /data/mysql/ ]
[root@linux-1 bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize
# 查看日志初始化成功 生成初始密码 to=7wimn#Wys
[root@linux-1 logs]# cat mysqld.log 
2023-05-18T08:10:42.779068Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-05-18T08:10:42.779183Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 16449
2023-05-18T08:10:42.789514Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-18T08:10:43.399567Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-18T08:10:45.461216Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q!Jg=mw<C4X2

Tip 初始化报错

[root@iZgw0c7mitdiuadv7yls3iZ bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

需要安装依赖 yum install libaio

  • 启动服务中添加mysql服务
# 将mysql.server 脚本拷贝到 /etc/init.d 目录下
[root@linux-1 logs]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 启动mysql服务
[root@linux-1 logs]# service mysql start
Starting MySQL.. [  OK  ]
# 关闭mysql服务
[root@linux-1 logs]# service mysql stop
Shutting down MySQL.   [  OK  ]

# 重启mysql服务
[root@linux-1 logs]# service mysql restart
Shutting down MySQL.   [  OK  ]
  • 使用客户端连接
# 进入mysql的bin目录下,输入之前默认生成的密码
[root@linux-1 bin]# ./mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.28

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

# 修改root密码
mysql> alter user 'root'@'%' identified by 'root213465';
# alter user 'root'@'localhost' identified by 'root213465';
mysql> flush privileges;  #刷新mysql的系统权

# 授远程访问权限
mysql> use mysql
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+

# 删除root用户
mysql> drop user root@'%';
mysql> flush privileges;

# 创建root用户
mysql> create user 'root'@'%' identified by 'root213465';

# 授予权限
mysql> grant all privileges on *.* to 'root'@'%' with grant option;

# 刷新权限
mysql> flush privileges;


# 创建只读用户
mysql> create user 'onlyReadUser'@'%' identified by 'onlyReadUser213465';

# 授予用户只读权限(假设是针对所有数据库的所有表)
mysql> grant select on *.* to 'onlyReadUser'@'%';


# 如果只想授予特定数据库的权限,可以使用如下命令:
mysql> grant select on your_database_name.* to 'onlyReadUser'@'%';

# 刷新权限
mysql> flush privileges;
2.3 Navicat 连接测试

使用 navicat 客户端进行连接测试,服务器的防火墙和安全组记得开放 3306 端口

image-20241124160155613

mysql相关目录

数据库目录: /data/mysql

日志目录:/usr/local/mysql/logs/mysqld.log

进程文件:/var/run/mysqld/mysqld.pid

socket目录: /usr/local/mysql/socket/mysql.sock

登录用户:root 密码:root213465

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值