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

相关推荐
wowocpp1 分钟前
查看 linux ubuntu 分区 和 挂载 情况 lsblk
linux·运维·ubuntu
wowocpp3 分钟前
查看 磁盘文件系统格式 linux ubuntu blkid ext4
linux·数据库·ubuntu
龙鸣丿1 小时前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘3 小时前
uniapp-是否删除
linux·前端·uni-app
C吴新科3 小时前
MySQL入门操作详解
mysql
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410833 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.4 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-04 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信