Linux 下安装mysql

1.检查之前是否安装过mysql

rpm -qa | grep mysql

如果之前安装过,删除之前的安装包

rpm -e 安装包

如果没有,进行后续安装

2. 下载

MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/

3. 将文件复制到linux 环境中

使用xshell工具将下载的文件传输到服务器上

4. 解压到指定路径下

创建目录 /usr/local/mysql(将mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz 里边的文件放在mysql下)

tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/

5. 检查是否已经有mysql 用户或者组

如果没有,就进行添加

groups mysql

添加用户组和用户

groupadd mysql && useradd -r -g mysql mysql

再执行 groups mysql 看是否添加成功

6. 创建数据目录并赋权

创建目录

mkdir -p /data/mysql

赋权

chown mysql:mysql -R /data/mysql

7. 修改配置文件

vim /etc/my.cnf

mysqld

设置为0.0.0.0表示任意主机都可以访问,如果设置为127.0.0.1 表示只可以本地访问

bind-address=0.0.0.0

port=3306

user=mysql

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/tmp/mysql.sock

log-error=/data/mysql/mysql.err

pid-file=/data/mysql/mysql.pid

character_set_server=utf8mb4

socket=/var/lib/mysql/mysql.sock

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

8.初始化配置信息

cd /usr/local/mysql/bin/

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

如果有以下报错:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

安装 libaio

yum install -y libaio

安装完成之后重新初始化配置信息

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

9. 查看初始密码信息

cat /data/mysql/mysql.err

在 A temporary password is generated for root@localhost: 后边就是

10. 启动

/etc/init.d/

有时候要实现在不使用 kill 或 killall 命令的情况下,能干净的启动或杀死一个进程。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

service mysql start

有时候启动报错:

Redirecting to /bin/systemctl start mysql.service

Failed to start mysql.service: Unit not found.

解决:

  1. whereis mysql 看下是否存在

  2. ll /etc/init.d/ | grep mysql 看下是否存在

  3. find / -name mysql.server 查看位置

  4. 将第三步搜索到的服务复制到init.d

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

重新启动试试

报错:

Starting MySQLCouldn't find MySQL server (/usr/local/mysql/[FAILED]ld_safe)

报错:

tarting MySQL.2024-09-25T09:59:39.151645Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

The server quit without updating PID file (/data/mysql/mysq[FAILED]

处理:

mkdir /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

11. 修改数据库密码

  1. 开启免密登录

vim /etc/my.cnf

在[mysqld] 下添加

skip-grant-tables

  1. 重启服务

service mysql restart

  1. 登录

/usr/local/mysql/bin/mysql -u root -p

  1. 刷新规则允许外部访问

use mysql      #选择访问mysql库

update user set host = '%' where user = 'root';      #使root能再任何host访问

FLUSH PRIVILEGES;       #刷新

  1. 修改密码

ALTER USER "root"@"%" IDENTIFIED BY "123456";

FLUSH PRIVILEGES; #刷新

  1. 退出

exit

7.恢复密码登录

vim /etc/my.cnf

service mysql restart # 重启服务

  1. 密码登录

/usr/local/mysql/bin/mysql -u root -p

输入密码

注意:阿里云需要开放3306端口

授权对象最好使用具体的ip保证安全

相关推荐
Johny_Zhao27 分钟前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
于眠牧北3 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
十日十行3 天前
Linux和window共享文件夹
linux