Linux - 安装mysql
下载
https://downloads.mysql.com/archives/community/
根据自己的 linux,选择 mysql 版本,我的 linux 版本是 Alibaba Cloud Linux 3.2104 LTS 64 位,
选择:mysql-8.0.32-linux-glibc2.12-x86_64.tar
为了避免回头需要安装解压程序,可以先在 windows 系统上完成解压,再导入到 linux。
解包
解包: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
开机自启
这里不展开介绍,可搜索词条 “chkconfig命令”
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';
防火墙开放3306
添加防火墙策略,从本机(PC)访问,正式环境下不要设置,一般会有专门的设置软件。
firewall-cmd --list-all
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all