前言
有点老了哈,CentOS8早都出来了,Mysql8也早出来了…
不过不迟…
下载
官网:https://dev.mysql.com/downloads/mysql/
可以下载tar.gz文件,解压配置即可使用
配置
1、新建mysql用户
groupadd mysql 创建用户组
useradd -r -g mysql mysql ##-r参数表示mysql用户是系统用户,不可用于登录,创建用户并将用户组
chown -R mysql mysql/
chgrp -R mysql mysql/
2、新建配置文件
新建之前,先创建一些需要的目录或文件:
mkdir /usr/local/mysql/data
yum install libaio
cd /var/log/
touch mysqld.log
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
cd /var/run/
mkdir mysqld
chmod 777 mysqld
cd mysqld
touch mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql mysqld.pid
vim /etc/my.cnf
粘贴下面内容:
[mysqld]
port=3306
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
max_connections=151 # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
character-set-server=utf8
collation-server=utf8_general_ci
bind-address = 0.0.0.0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
3、初始化
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
4、数据库加密
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
5、启动服务
./mysqld_safe --user=mysql &
6、将mysql进程放入系统进程中,命令如下:
cp support-files/mysql.server /etc/init.d/mysqld
7、配置环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
8、使用随机密登录
mysql -u root -p
9、为root设置新密码
下面第二个root就是新密码
alter user 'root'@'localhost' identified by 'root';
10、允许远程链接
use mysql;
update user set user.Host='%' where user.User='root';
11、刷新权限
flush privileges;
systemctl
使用systemctl 启动mysql
创建文件:
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
Type=forking
PermissionsStartOnly=true
ExecStart= /etc/init.d/mysqld start
ExecStop= /etc/init.d/mysqld stop
ExecReload= /etc/init.d/mysqld restart
LimitNOFILE = 5000
[Install]
WantedBy=multi-user.target
这一步能成功的前提是,之前执行了:
cp support-files/mysql.server /etc/init.d/mysqld
创建数据库
CREATE DATABASE IF NOT EXISTS testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
新建用户
create user 'test'@'localhost' identified by '1234';
注意: 此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
查询用户
select user,host from mysql.user;
更改密码
--方法1,密码实时更新;修改用户“test”的密码为“1122”
set password for test =password('1122');
--方法2,需要刷新;修改用户“test”的密码为“1234”
update mysql.user set password=password('1234') where user='test'
--刷新
flush privileges;
分配权限
--授予用户test通过外网IP对数据库“testdb”的全部权限
grant all privileges on xxx.* to 'test'@'%' identified by '1234';
--刷新权限
flush privileges;
--授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on xxx.* to test@'%';
查询权限
--查看用户“test”
show grants for test;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';
grant all privileges on database.* to 'user'@'localhost' identified by 'pass';
flush privileges;
自用新建命令
CREATE USER 'user'@'localhost' IDENTIFIED BY 'xxx';
CREATE DATABASE database;
grant SELECT,DELETE,UPDATE,INSERT,CREATE,REFERENCES on database.* to 'user'@'localhost' identified by 'xxx';
flush privileges;