安装 repo
切换到 root 用户
su
因为 centos 没有 mysql 的仓库安装源,需要从 mysql 官网下载包含 mysql 的仓库。repo下载页面 ,在此页面选择合适的版本。这里选择 centos7 下的mysql8.0:
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
下载后将 repo 进行安装
yum -y install mysql80-community-release-el7-5.noarch.rpm
查看 repolist
yum repolist
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 512
mysql-connectors-community/x86_64 MySQL Connectors Community 192
mysql-tools-community/x86_64 MySQL Tools Community 90
mysql80-community/x86_64 MySQL 8.0 Community Server 343
nodesource/x86_64 Node.js Packages for Enterprise Linux 7 - x86_64 76
updates/7/x86_64 CentOS-7 - Updates 3,842
退出 root 用户,回到普通用户 lishiqing 的身份
exit
安装 MySQL
以普通用户 lishiqing 的身份安装 mysql-server,sudo 命令需要输入 lishiqing 用户的密码
sudo yum -y install mysql-server
启动 mysql
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
防火墙开放 3306 端口(阿里云则选择安全组开放 3306 端口)
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
3306/tcp
为确保数据库的安全性和正常运转,需要对数据库程序进行初始化操作
mysql_secure_installation
Enter password for user root:
Error: Access denied for user 'root'@'localhost' (using password: NO)
如果报错,则因为 MySQL 的 root 用户有默认密码,需要将 root 用户的密码修改为空。
将 root 用户密码修改为空
在配置文件添加 skip-grant-tables
修改配置文件 /etc/my.cnf
sudo vi /etc/my.cnf
在最后一行添加 skip-grant-tables
skip-grant-tables
重新启动 mysqld
sudo systemctl restart mysqld
进入数据库修改 root 用户的密码
在命令行登录 mysql 服务器,输入密码的时候直接按回车
mysql -u root -p
进入 mysql 数据库,修改 root 用户的密码为空
mysql> use mysql;
mysql> update user set authentication_string='' where user='root';
退出 mysql
mysql> exit;
在配置文件去掉 skip-grant-tables
修改配置文件 /etc/my.cnf
sudo vi /etc/my.cnf
去掉最后一行的 skip-grant-tables
#skip-grant-tables
重新启动 mysqld
sudo systemctl restart mysqld
初始化数据库
在客户端生成一个随机字符串,作为后面 MySQL root 用户的密码
openssl rand -base64 32
qd8UFzJp8hPerzyp+a01NYHGGK8XEoOerF5tUdg0Ppo=
为确保数据库的安全性和正常运转,需要对数据库程序进行初始化操作
sudo mysql_secure_installation
让你设置一个MySQL root 用户的密码,将刚才的随机字符串粘贴过来,请保存好这个字符串
后面一律选择 y
是否确定使用这个密码?y
是否删除匿名用户?y
是否不允许 root 用户远程登录?y
是否删除 test 数据库?y
是否现在重载权限? y
创建新用户与数据仓库
登录 mysql
mysql -u root -p
创建新用户
mysql> create user 'xb2_node_operator'@'%' identified by 'zgPtqsiAynPpFZkLKz4cgA2ipVLePU6FFLPcN0YIYtE=';
'xb2_node_operator'@'localhost'
:xb2_node_operator 用户只能连接本地的数据库
'xb2_node_operator'@'%'
:xb2_node_operator 用户可以连接本地或远程的数据库
zgPtqsiAynPpFZkLKz4cgA2ipVLePU6FFLPcN0YIYtE=
是在客户端使用 openssl rand -base64 32
生成的随机字符串,这里作为 xb2_node_operator 用户的密码,请保存好
创建数据仓库
mysql> create database xb2_node;
让用户管理数据仓库
mysql> grant all privileges on xb2_node.* to 'xb2_node_operator'@'%';
退出 mysql
mysql> exit;