Linux - 安装mysql

发布时间 2023-06-06 10:25:50作者: 疯狂的妞妞

下载 

https://downloads.mysql.com/archives/community/

 

根据自己的 linux,选择 mysql 版本,我用的是 Alibaba Cloud Linux 3.2104 LTS 64 位,
选择:mysql-8.0.32-linux-glibc2.12-x86_64.tar

先在windows系统上解压成tar格式,再导入到linux,使用tar命令解包。

tar 命令
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName

可使用 MobaXterm、SSH 等工具辅助完成上述步骤,解压后的目录结构如下:

 

安装

新建 mysql 配置文件

touch /etc/my.cnf
vim /etc/my.cnf

将下列内容复制到my.cnf文件中,可按需调整内容。

[mysql]
socket=/usr/local/mysql/data/mysql.sock

[mysqld]
# 基本路径
basedir=/usr/local/mysql
# 数据路径 (先在/usr/local/mysql建data目录)
datadir=/usr/local/mysql/data
# socket文件
socket=/usr/local/mysql/data/mysql.sock
symbolic-links=0
# 错误日志
log-error=/usr/local/mysql/data/mysqld.log
# pid文件
pid-file=/usr/local/mysql/data/mysqld.pid

设置环境变量

设置完环境变量之后,可以在任意位置使用 mysql 命令。

编辑文件

vim /etc/profile

在文件末尾复制粘贴下列内容

export MYSQL_HOME=/usr/local/mysql
export MYSQL_PATH=$MYSQL_HOME/bin
export PATH=$PATH:$MYSQL_PATH

立即生效

source ~/.bash_profile

查看环境变量

env

增加用户组

需要避免所有人都用 root 账号,创建一个 mysql 专用账号

创建用户组:groupadd mysql
创建用户:useradd -r -g mysql mysql
设置密码:passwd [user]

启动 mysql

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

直接执行通常会报错,需要先执行下一句

yum install -y libaio

重新执行命令,启动 mysql

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cd /usr/local/mysql/support-files/
./mysql.server start

在etc/init.d目录添加 mysql 启停脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //拷贝mysql.server
chmod +x /etc/init.d/mysql //添加可执行权限。
chkconfig --add mysql // 注册启动服务
chkconfig --list //查看是否添加成功

出现下列内容表示成功

 

修改root账号的密码

修改 my.cnf 文件,在 [mysqld] 代码块添加一行:

skip-grant-tables

执行下列命令

# 重启mysql服务
service mysql restart
# 无密码进入,直接回车即可
mysql -u root -p
# 修改root的密码
alter user 'root'@'localhost' identified by 'root';
# 刷新保存,不执行的话 alter 这一行会报错,执行完这个就好了
flush privileges;

处理结束,记得删除刚刚在 my.cnf 新增的这一行数据,尝试使用root账号登录。

因为安装的是最新的 mysql,老版本 navicat 登录可能会报错,报错信息包含: “caching_sha2_password……” 等内容,执行下面一句即可

alter user 'root'@'localhost' identified with mysql_native_password by 'root';

Docker环境下安装mysql

并不是很推荐把 mysql 安装到 docker 下,数据库是程序最优价值的部分,要考虑数据备份、修复等相关问题。
通常情况下,很可能一整台机子只用于数据库,连多余的应用程序都不会有,更不可能出现docker;
将 mysql 安装到 docker 容器,除了需要处理 mysql 的问题,还需要考虑 docker 环境自身的问题(意外关闭、系统奔溃等等),
多了个docker,相当于平白无故多了一些风险项。

镜像拉取/删除

docker pull mysql:5.7
docker rmi -f mysql:5.7

创建容器

docker run -di --name=mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE='med' mysql:5.7

参数说明:
-p 3307:3306 将容器3306端口映射到主机3307
-e MYSQL_ROOT_PASSWORD=root 设置初始密码为root
-e MYSQL_DATABASE='med' 初始创建数据库med

添加防火墙策略,从本机(PC)访问

firewall-cmd --list-all
firewall-cmd --add-port=3307/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all