在Mac和Linux上安装并配置MySql

在Mac和Linux上安装并配置MySql

Created
Oct 29, 2022 07:43 AM
Date
Oct 29, 2022
Category
Devops
Tags
Dev ops

Mac

下载安装包

注意区分 x86 架构和 arm 架构。

安装

notion image
安装完成后,可以在设置中看到 Mysql
notion image

启停mysql服务

notion image
在这里点击【Stop MySQL Server】来停止。

配置文件

在Configuration中可以查看配置文件路径。
notion image

添加到环境变量

vim ~/.bash_profile# 最后一行添加PATH=$PATH:/usr/local/mysql/bin
后面的地址规则为:
BaseDirectory + /bin
notion image

命令行访问

mysql -u root -p# 输入密码
notion image

Linux

下载安装包

# 下载wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz# 解压tar -xvf ./mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

添加到环境变量

# 移动位置mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql# 添加到PATHvim ~/.bash_profile# 添加PATH = $PATH:/usr/local/mysql/bin# source ~/.bash_profile

创建用户和用户组

# 创建用户组groupadd mysql# 创建用户useradd -r -g mysql iimt# 修改目录权限chown -R iimt.mysql /usr/local/mysql

初始化数据库

# 创建数据目录,当前目录 use/local/mysqlmkdir data# 初始化mysqld --user=iimt --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

配置文件

  1. 创建配置文件
vim /etc/my.cnf
  1. 添加以下内容
[mysqld]datadir=/usr/local/mysql/databasedir=/usr/local/mysqlsocket=/tmp/mysql.sockuser=iimtport=3306character-set-server=utf8# 取消密码验证skip-grant-tables# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# skip-grant-tables[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

启动

  1. 加入到服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  1. 设置开机启动
chkconfig mysql on
  1. 启动mysql
service mysql start# 成功显示如下Starting MySQL. [ OK ]

设置密码

  1. 进入mysql
mysql -u root -p# 无需输入密码,直接回车(因为上面开启了 skip-grant-tables)
  1. 设置密码
use mysqlupdate user set authentication_string=password('密码') where user='root';exit
  1. 开启密码验证
vim /etc/my.cnf# 注释 skip-grant-tables 这一行
  1. 重启
service mysql restart
  1. 之后进入mysql就需要输入刚刚设置的密码了 ## 开启远程连接
mysql -u root -p# 输入密码use mysqlupdate user set host='%' where user = 'root';flush privileges;exit;

开启端口

阿里云服务器

添加安全组如下
notion image

其他服务器

# 查看防火墙是否已开启3306端口firewall-cmd --query-port=3306/tcp# 设置永久开放3306端口firewall-cmd --add-port=3306/tcp --permanent# 查看防火墙状态,若为dead则未开启systemctl status firewalld# 停止防火墙systemctl stop firewalld# 开启防火墙systemctl start firewalld

可能出现的问题

若出现 You must reset your password using ALTER USER statement before executing this statement...错误,执行如下操作之后继续即可。