Linux环境下mysql的安装配置

Linux环境下mysql的安装配置

mysql下载地址: https://dev.mysql.com/downloads/mysql/

mysql安装

下载了mysql之后
解压tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
然后移动重命名到mv mysql-8.0.32-linux-glibc2.12-x86_64 /usr/local/mysql
/usr/local/基本就是mysql的归宿

创建mysql用户组和用户并修改权限

groupadd mysql
useradd -r -g mysql mysql

创建数据目录并赋予权限

mkdir -p  /data/mysql              #创建目录,一般都是根目录下
chown mysql:mysql -R /data/mysql   #赋予权限

配置my.cnf
vim /etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

注意,如果你想开启binlog,请在初始化数据库之后操作。或者在一切结束后操作,我会将其配置放到最后

然后开始初始化数据库
进入bin

cd /usr/local/mysql/bin/

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看初始密码
cat /data/mysql/mysql.err
在这里插入图片描述

启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中,不过在此之前要先编辑下mysql.server这文件,一些配置要改正
在这里插入图片描述

vim ./support-files/mysql.server一下绿色标记的地方都根据自己的配置写
Linux环境下mysql的安装配置_第1张图片

然后放置

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动service mysql start

如果启动遇到了Failed to start mysql.service: Unit mysql.service is masked
执行systemctl unmask mysql.service
Linux环境下mysql的安装配置_第2张图片

ps -ef|grep mysql
Linux环境下mysql的安装配置_第3张图片

然后去修改密码
在bin目录下,使用初始密码登陆进去
./mysql -u root -p #bin目录下
但是执行此命令会发现https://blog.csdn.net/wss794/article/details/124415233
在这里插入图片描述
Linux环境下mysql的安装配置_第4张图片
apt-get install libtinfo5 ,如果这个不行就apt-get install libncurses*

然后重新进入修改密码

ALTER USER '用户'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

在这里插入图片描述
然后给mysql加上软链接,就不需要每次都到/usr/local/mysql/bin下执行命令

ln -s /usr/local/mysql/bin/mysql /usr/bin

开启数据库binlog

首先创建个目录用于存放log文件
mkdir mysql-binlog
然后修改此目录的所有者和所属组
chown -R mysql:mysql mysql-binlog
在这里插入图片描述
注意不能放到/data/mysql目录下,因为前面已经将该目录作为datadir,如果再创建一个文件夹,数据库链接的时候就会有一个奇奇怪怪的数据库出现,但也不影响正常使用
在这里插入图片描述

向/etc/my.cnf追加文件

# bin-log的开启
#设置日志三种格式:STATEMENT、ROW、MIXED 。
binlog_format = mixed
#设置日志路径,注意路经需要mysql用户有权限写,这里可以写绝对路径,也可以直接写mysql-bin(后者默认就是在/var/lib/mysql目录下)
log-bin = /data/mysql-binlog/mysql-bin.log
#设置binlog清理时间
expire_logs_days = 7
#binlog每个日志文件大小
max_binlog_size = 100m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m
#配置serverid
server-id=1

置完成后,保存,重新运行service mysql restart 有的也可能是service mysqld restart看你前面怎么定义的,就会在目标文件夹下生成对应的.index文件和模块文件
在这里插入图片描述



mysql DCL操作

管理用户

查询用户:

USE mysql;
SELECT * FROM user;

创建用户:

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码:

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
或
UPDATE user SET Password=PASSWORD('root') WHERE user='root';

删除用户:

DROP USER '用户名'@'主机名';

开启远程访问权限:

update user set host ='%' where user ='root';//开启远程访问user
flush privileges;//刷新权限 

示例

-- 创建用户test,只能在当前主机localhost访问
create user 'test'@'localhost' identified by '123456';
-- 创建用户test,能在任意主机访问
create user 'test'@'%' identified by '123456';
create user 'test' identified by '123456';
-- 修改密码
alter user 'test'@'localhost' identified with mysql_native_password by '1234';
-- 删除用户
drop user 'test'@'localhost';

注意
● 主机名可以使用 % 通配
● 这类sql开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用

权限控制

常用权限:
Linux环境下mysql的安装配置_第5张图片查询权限:

SHOW GRANTS FOR '用户名'@'主机名';

授予权限:

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限:

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

示例

-- 授予所有表所有权限
GRANT all on [数据库名].* to '用户名'@'主机名';
GRANT all on KFC.* to 'Akio'@'%';

GRANT all on *.* to 'Akio'@'%';

注意事项
● 多个权限用逗号分隔
● 授权时,数据库名和表名可以用 * 进行通配,代表所有

你可能感兴趣的:(Ubuntu,22,MySQL,mysql,linux,数据库)