前段时间在 CentOS 7.5
64位上安装 MySQL 8.0
。查了些资料,在这里记录一下详细的安装和设置步骤。
一、安装
使用yum
安装MySQL
之前需要先下载对应的.rpm
文件,下载方法:
- 去 MySQL 官网,在 DOWNLOADS 界面找到
MySQL Community (GPL) Downloads »
;
- 选择
MySQL Yum Repository
;
- 由于我使用的 CentOS 7,所以找到下面这一项下载:
Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
下载好之后,由于我使用的 SSH 远程连接到 CentOS 7,所以需要把这个文件上传过去,上传方法:
- 可以使用 FTP;
- 也可以使用
scp
命令上传过去:
# scp -P 22 D:Downloadmysql80-community-release-el7-3.noarch.rpm root@[your ip]:/home
- 也可以在上面的下载界面直接获取下载连接,在远程主机上用
wget
下载(推荐):
# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
这个下载链接的获取方法如下图所示:
其他版本的 MySQL 的 rpm 包可以在官网找一找,应该都有。
OK,有了.rpm
文件之后,执行下面命令开始用yum
安装:
# cd /home
# yum -y install mysql80-community-release-el7-3.noarch.rpm
# yum -y install mysql-community-server
等待安装完成。
二、设置
- 首先启动 MySQL 服务:
# systemctl start mysqld
- 然后设置为开机启动:
# systemctl enable mysqld
# systemctl daemon-reload
- 登录 MySQL 数据库之前,首先需要得到 MySQL 初始化时为 root 用户分配的随机密码,之后才能根据用户名和密码登录 MySQL 数据库。临时密码存放在 MySQL 的 mysqld.log 日志文件中,执行如下命令可以查询 MySQL 初始化时生成的随机密码。
# grep 'temporary password' /var/log/mysqld.log
- 看到随机密码之后登录 MySQL:
# mysql -u root -p
输入密码,即可进入 MySQL 命令行
- 修改密码。成功登录 MySQL 后,尝试执行部分 SQL 语句,此时会出现如下错误提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
这是因为初始化密码还没有修改,重设密码后才能执行查询语句。下列语句将 root 用户的密码修改为v#1#ETXI3E
。可以设置为满足 MySQL 要求的任意密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'v#1#ETXI3E';
- 添加一个可以远程登录 MySQL 服务的用户:
为了安全考虑,默认只允许 root 帐户在服务器本地登录,而不开放 root 用户在远程机器登录的权限。如果要在其他机器上连接 MySQL,必须修改 root 允许远程连接,但是一般不建议这么做,超级用户的权限限制在服务器本地最好,如果想要远程登录,建议添加一个允许远程连接的帐户。为了安全考虑,希望大家都可以遵守这条规范。
登录 MySQL 数据库后,执行如下语句:
mysql> CREATE USER 'yourusername'@'%' IDENTIFIED BY 'yourpassword';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'%' WITH GRANT OPTION;
此时,会创建一个用户名为yourusername
、登录密码为yourpassword
的用户,'yourusername'@'%'
表示yourusername
这个数据库用户可以在任意 ip 地址(即'%')远程登录 MySQL 数据库。添加成功后可以在本地的数据库客户端尝试连接一下,测试远程登录是否成功。
这一步网上有的教程使用:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
实际执行的时候会报错,见新版SQL授权用户时报错 near 'IDENTIFIED BY '密码' with grant option' at line 1
- 最后刷新权限,并退出。
mysql> FLUSH PRIVILEGES;
mysql> EXIT
至此安装、设置步骤全部完成。
- 创建一个名为
test
的UTF-8
编码的数据库
mysql> create database `test` character set 'utf8' collate 'utf8_general_ci';