环境
x86_64 + VMWare + openEuler 20.03 LTS SP1
root用户
安装MySQL
(1)关闭防火墙
systemctl disable firewalld
(2)禁用SELinux
SELinux是Linux内核中的一项安全策略,为避免MySQL使用中可能遇到的一些访问受限问题,我们将其禁用:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
建议禁用后重启系统。
(3)yum安装MySQL
yum install -y mysql
本机用yum安装的版本为8.0.22。
以为这就完成了?NO WAY!
参考官方文档:
For non-Windows platforms, no default option file is created during either the server installation or the data directory initialization process.
对于非Windows平台,在服务器安装或数据目录初始化过程中不会创建默认选项文件。因此需要我们要我们手动编辑配置文件、加载service服务、配置环境变量。
MySQL数据库的配置及加载服务
(1)创建数据存储目录和进程所需的相关目录并修改权限
mkdir /var/lib/mysql
cd /var/lib/mysql/
mkdir data tmp run log
touch /var/lib/mysql/log/mysql.log
chown -R mysql:mysql /var/lib/mysql/
为了方便后续配置,提前创建了mysql.log文件;用户组和用户权限修改为安装MySQL时默认的mysql:mysql。
(3)创建一个新的配置文件
rm -f /etc/my.cnf
echo -e "[mysqld_safe]\nlog-error=/var/lib/mysql/log/mysql.log\npid-file=/var/lib/mysql/run/mysqld.pid\n\n[mysqldump]\nquick\n\n[mysql]\nno-auto-rehash\n\n[client]\nport=3306\ndefault-character-set=utf8\n\n[mysqld]\nuser=root\nport=3306\nbasedir=/usr/local/mysql\nsocket=/tmp/mysql.sock\ntmpdir=/var/lib/mysql/tmp\ndatadir=/var/lib/mysql/data\ndefault_authentication_plugin=mysql_native_password\nskip-grant-tables" > /etc/my.cnf
chown mysql:mysql /etc/my.cnf
看一下我们的配置文件:
cat /etc/my.cnf
这里将mysql的user设置为了root。
(5)加载mysql服务
chmod 777 /usr/local/mysql/support-files/mysql.server
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
chown -R mysql:mysql /etc/init.d/mysql
(6)配置环境变量
将MySQL的可执行文件路径配置到系统环境变量中,在root条件下使环境变量配置生效。
export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile
source /etc/profile
# 为避免每次重启后要重新export,可以用下列命令将环境变量加到/etc/profile文件中
sed -i '$a\PATH=$PATH:/usr/local/mysql/bin' /etc/profile
初始化并启动MySQL数据库
(1)初始化数据库
mysqld --defaults-file=/etc/my.cnf --initialize
注意这一步会打印出来一串初始密码,记得保存一下。
(2)更改数据目录的权限
chown -R mysql:mysql /var/lib/mysql/data
(3)启动数据库
service mysql start
查看数据库状态:
service mysql status
查看数据库进程与端口:
ps -ef | grep mysql
netstat -anpt
netstat -anpt | grep mysql
netstat -anpt | grep 3306
访问MySQL数据库
(1)登录数据库
mysql -u root -p
提示输入上一步初始化中生成的初始密码。登录成功后进入mysql服务,下面将用到一些mysql语句。
(2)修改MySQL上root用户密码
flush privileges;
alter user 'root'@'localhost' identified by "123456";
将root用户密码修改为了123456。
(3)创建远程登录MySQL的用户
create user 'user'@'%' identified by '123456';
创建了用户名为user,密码为123456的用户。
(4)配置用户权限
grant all privileges on *.* to 'user'@'%' with grant option;
flush privileges;
赋予了user用户全部权限,并允许远程主机使用user账号访问MySQL,刷新使配置生效。
(5)查看用户
select user,host from mysql.user;
(6)退出MySQL数据库
exit
执行后返回bash。下次以root用户登录需输入新设置的密码“123456”。
也可用user用户登录:
mysql -u user -p
(7)关闭数据库
service mysql stop
参考文献