Mysql配置

102 阅读3分钟

1 上传文件,创建文件夹

usr 是非系统程序目录,/usr/local是常见的系统级软件安装目录, 所以在usr目录中创建一个文件夹 mysql

上传gz文件到 /usr/mysql


mkdir /usr/mysql cd /usr/mysql #创建文件夹

tar -zxvf mysql-8.0.24-el7-x86_64.tar.gz  #解压 

mv /usr/mysql/mysql-8.0.24-el7-x86_64 /usr/mysql/mysql8 #文件夹改名 

解压成功 image.png

2 安装mysql环境

mysql依赖

yum search libaio # search for info yum 
install libaio # install library

新建mysql的data目录和logs目录:

cd /usr/mysql/mysql8 mkdir data #新建存储数据的目录 
mkdir logs #新建存放日志的目录 
touch ./logs/mysqld.log #新建存放日志的文件 

chown -R mysql:mysql /usr/mysql/mysql8/data #修改文件夹权限 
chmod -R 755 /usr/mysql/mysql8/data 
chown -R mysql:mysql /usr/mysql/mysql8/logs 
chmod -R 755 /usr/mysql/mysql8/logs

初始化数据库(注意目录)

./bin/mysqld --user=root --basedir=/usr/mysql/mysql8 --datadir=/usr/mysql/mysql8/data --initialize

image.png 修改my.cnf配置文件, 通过mysql官网可以知道,从版本5.7.18开始,mysql免安装版二进制包中就不包含该文件了,即不需要my.cnf文件也可以正常运行;my.cnf文件中配置的选项会在命令行启动mysql的时候作为参数进行启动,为了后面搭建mysql主从环境方便,下面可以添加了一个简单的my.cnf文件作为实例(如果只是单纯的搭建一个mysql实例,可以直接忽略此步骤),使用vim /etc/my.cnf命令,如果在该目录上不存在则会新建,注意,创建的mysql配置文件一定要命名为my.cnf,不要命名为my.conf之类的,要不然在上面的配置,mysql识别不了。(mysql默认会去/etc/目录下查找my.cnf文件)。

vim /etc/my.cnf 

[mysqld] 
character_set_server=utf8mb4 
init_connect='SET NAMES utf8mb4' 
basedir=/usr/mysql/mysql8 #解压路径 
datadir=/usr/mysql/mysql8/data #data目录 
socket=/usr/mysql/mysql8/mysql.sock 

lower_case_table_names = 1 #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写 
bind-address = 0.0.0.0 # 开启ip绑定 
[mysqld_safe] 
#日志目录和日志文件用上面提前建好的,方便查看mysql运行日志,千万不要搞个不存在的 
log-error=/usr/mysql/mysql8/logs/mysqld.log 
pid-file=/usr/mysql/mysql8/data/mysqld.pid #指定客户端连接mysql时的socket通信文件路径 
[client] 
socket=/usr/mysql/mysql8/mysql.sock #跟上面定义的一致就好 
default-character-set=utf8mb4

将mysql添加至开机启动

//创建配置以及修改 
cp ./support-files/mysql.server 
/etc/init.d/mysqld 
//修改mysqld,使用vim /etc/init.d/mysqld 命令 修改以下代码部分,basedir和datadir文件已经有,只需在=号后面赋值即可 
vim /etc/init.d/mysqld 

//vim搜索 /内容 N下一个 回车 
basedir=/usr/mysql/mysql8 
datadir=/usr/mysql/mysql8/data 
//设置开机启动: 
chkconfig --add mysqld

配置环境变量

vim /etc/profile 

export PATH=$PATH:/usr/mysql/mysql8/bin 
source /etc/profile

启动

systemctl start mysqld 
//重启 
systemctl restart mysqld

3 mysql修改密码

初始化密码

查看初始密码

grep "password" /var/log/mysqld.log

3.1 密码约束

set global validate_password.policy=0;//最低约束等级 
set global validate_password.length=1;//长度大于1即可 


validate_password.check_user_name ON 
validate_password.dictionary_file 
validate_password.length 
validate_password.mixed_case_count 
validate_password.number_count 
validate_password.policy 
validate_password.special_char_count

3.2 密码策略

3.2.1 默认caching_sha2_password 改成mysql_native_password (8.0以前)

//先把密码改成mysql_native_password方式 
alter user root@'localhost' identified with mysql_native_password by 'bai123.com'; //修改文件 默认加密方式 

vim /etc/my.cnf 


[mysqld] 
default_authentication_plugin=mysql_native_password //配置完在修改密码 
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’; //可以省去了with mysql_native_password,

4 修改远程

use mysql; 
select user, 
host from user;
update user set host = '%' where user = 'root'; 
flush privileges;

5 跳过密码

[mysqld] skip-grant-tables