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

相关推荐
星空下的曙光16 分钟前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓120118 分钟前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
之诺28 分钟前
MySQL通信过程字符集转换
后端·mysql
沙振宇1 小时前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql
华强笔记1 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发2 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
拾心212 小时前
【运维进阶】Ansible 角色管理
运维·ansible
JSON_L2 小时前
MySQL 加锁与解锁函数
数据库·mysql
phoenix09812 小时前
ansible部署lnmp-allinone
linux·运维·ansible
winds~3 小时前
【git】 撤销revert一次commit中的某几个文件
linux·c++