官方文档非常的全面,但是通过常规搜索引擎搜索时很难直接看到,因此本文以官网为主,这里只涉及整个过程的关键部分。
官方文档:https://dev.mysql.com/doc/refman/5.7/en/installing.html
包含各种操作系统的详细安装步骤。
官方下载:https://downloads.mysql.com/archives/
这个地址可以选择所有版本进行下载
MySQL 对应的地址: https://downloads.mysql.com/archives/community/
页面如下:
可选版本:
操作系统:
1. 安装
1.1 Windows
官方文档:https://dev.mysql.com/doc/refman/5.7/en/windows-installation.html
虽然最简单推荐的方法是下载MySQL Installer(适用于Windows),并让其在系统上安装和配置所有MySQL产品。但是本文不推荐,因此如果想要使用这种方法,请参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-installer.html
本文推荐的方式是下载压缩包,完全自主控制整个安装和配置的过程。
从上面地址下载 zip 压缩包,然后解压到一个目录,比如 c:/mysql5.7/
。将 mysql 的 bin
目录配置到系统环境变量 path
中。临时在 CMD 执行的时候,可以使用类似下面的方式设置临时的环境变量:
> set path="c:/mysql5.7/bin/";%path%;
解压就是安装,完全的绿色版。
1.2 Linux
官方文档:https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html
1.2.1 安装 yum 存储库
这里针对 CentOS 的 yum 方式说明。下载 RPM 包:
下载 rpm 后,使用下列命令安装 yum 存储库:
sudo yum localinstall xxx.rpm
1.2.2 选择安装版本
通过下面命令查询当前选择的版本:
yum repolist enabled | grep "mysql.*-community.*"
默认选择的最新版本。使用下面命令查看所有可选版本
yum repolist all | grep mysql
通过下面命令选择要安装的版本:
sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql56-community
除了上面命令方式外,还可以通过手动编辑 /etc/yum.repos.d/mysql-community.repo
文件来选择版本:
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
查找要配置的存储库的条目,然后编辑 enabled
选项。指定 enabled=0
禁用存储库或 enabled=1
启用存储库。
验证选择:
yum repolist enabled | grep mysql
1.2.3 安装
使用下面命令安装:
sudo yum install mysql-community-server
2. 配置
安装MySQL之后,必须初始化数据目录,包括mysql系统数据库中的表。
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.html
配置前,先通过下面命令查看 MySQL 的基本信息:
mysqld --verbose --help
这个命令会输出非常多的信息,部分关键信息如下。
Windows 上:
Linux 上:
从这部分可以看到默认配置文件位置的优先顺序,我们可以在合适的位置创建该配置,然后配置数据目录。
比如 Windows 的 my.cnf
:
Linux 的 /etc/my.cnf
:
必看!!!目录权限说明
参考:初始化数据目录
下面的配置中有 /data/mysql/data 和 log
这些目录必须分配给 mysql 用户和 mysql 组。
例如:chown mysql:mysql /data/mysql/data chown mysql:mysql /data/mysql/log chmod 750 /data/mysql/data chmod 750 /data/mysql/log
如果权限不对,在启动服务时会出错。
做好基础配置后,执行命令初始化,mysqld
初始化时两个参数说明:
-
使用
--initialize
“ 默认安全 ”安装(即包括生成随机初始的 root密码)。在这种情况下,密码被标记为已过期,您将需要选择一个新密码。 -
使用
--initialize-insecure
,不会root生成密码。这是不安全的;假定您在将服务器投入生产使用之前会及时为帐户分配密码。
执行下面的其中一个命令:
./mysqld --initialize --user=mysql
./mysqld --initialize-insecure --user=mysql
重点提醒
这里之前写的是--user=root
,这是非常不对的!!!
因为 mysqld 服务是以 mysql 用户和组运行的,所以上面初始化目录的时候,必须用 mysql 用户,否则生成的文件权限都是root:root
。
这之后就会在 datadir
下面生成基础表和数据。
其他一些配置参考这里: MySQL 主从配置以及 Docker 方式演练
3. 启动
3.1 Windows
直接运行 mysqld
即可启动,这里可以配置为服务自动启动,使用下面命令安装服务:
mysqld --install
使用下面命令启动或关闭(也可以通过服务管理界面鼠标操作):
net start mysql
net stop mysql
删除服务
sc delete mysql
3.2 Linux
通过 systemctl
操作即可。
例如:
- 启动:
systemctl start mysqld
- 关闭:
systemctl stop mysqld
- 重启:
systemctl restart mysqld
- 开机启动:
systemctl enable mysqld
4. 用户和密码配置
服务启动后,使用下面命令登录系统:
mysql -uroot -p
如果是安全模式,上面初始化时会生成随机密码,如果不是安全模式,默认没有密码。
登录系统后,可以通过下面的命令配置新的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
如果需要 MySQL 可以被远程访问,可以添加下面的账号:
CREATE USER 'root'@'%' IDENTIFIED BY 'root-password';
也可以直接修改默认的 localhost
,如下 SQL:
use mysql;
update user set host = '%' where user = 'root';
附加
由于我个人在导入备份时经常遇到下面的错误:ERROR 1449 <HY000> at line xxx: The user specified as a definer <;root'@'%'> does not exist
可能还需要重新给
root
分配权限:GRANT ALL ON *.* TO root;