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/FAILEDld_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/mysqFAILED

处理:

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保证安全

相关推荐
天衍四九-1 小时前
MySQL中如何定位慢查询?如果SQL语句执行很慢,如何分析和优化?
数据库·sql·mysql
尚久龙2 小时前
mysql-5.7.26-winx64的安装步骤
数据库·mysql
实心儿儿2 小时前
MySQL 的安装
数据库·mysql·adb
考虑考虑2 小时前
docker compose环境变量替换
运维·后端·自动化运维
Java陈序员3 小时前
轻量运维面板!一款现代化的服务器控制面板工具!
运维·服务器·python·react.js·github
bosins3 小时前
WSL 迁移指南:如何将 Linux 环境完整复制到另一台电脑
linux·运维·服务器
IT利刃出鞘3 小时前
Docker Compose--安装WordPress--方法/示例
运维·docker·容器
程序员阿鹏4 小时前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
企鹅的蚂蚁5 小时前
LubanCat RK3588 实时 Linux 开发(六):启用 gs_usb 驱动并完成 USB-CAN 收发
linux·rk3588·linux驱动·socketcan·gs_usb·usb-can
2601_962299885 小时前
Linux执行Python脚本方法
linux·python·脚本·解释器·shebang