centos7 虚拟机安装 MySQL数据库
检查是否安装过 MySQL 以及版本信息
rpm -qa | grep -i mysql
卸载之前的版本,参数 -e 表示删除,-nodeps 表示不校验依赖关系
rpm -e mysql-5.1.47-4.el6.x86_64 –nodeps
二进制包格式安装的 mysql 卸载
如果我们的 mysql 是通过二级制包格式安装的,则 rpm -qa | grep -i mysql 是无法查询到结果的,需要采用以下的方式进行卸载清除。
首先停止 mysql 服务,查看其运行状态如下:
停止 mysql 服务
service mysql stop
查看状态
service mysql status
查找所有的 mysql 文件进行删除
find / -name mysql
根据查询结果执行删除命令,可能会提示没有权限,忽略继续执行
rm -rf /usr/lib64/mysql
最后查看和删除 mysql 用户
查看 mysql 用户
id mysql
删除 mysql 用户
userdel mysql
另外,可能还需要删除存在的配置文件
rm -f /etc/my.cnf
rm -f /usr/my.cnf
安装客户端
下载并安装 MySQL 官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
MySQL 的 GPG 密钥可能已经过期,需要更换
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装 MySQL 服务器
yum -y install mysql-community-server
MySQL 数据库的配置
启动 MySQL并查看运行状态
启动 MySQL 服务
systemctl start mysqld.service
查看 MySQL 运行状态
systemctl status mysqld.service
此时 MySQL 已经开始运行,可以通过如下的命令在日志文件中找出密码
grep "password" /var/log/mysqld.log
,u#;xwpgq5Xk
使用如下的命令登录数据库并修改密码
登录数据库
mysql -uroot -p
修改数据库密码
alter user 'root'@'localhost' identified by 'Hy123@456';
查看mysql默认的密码复杂度
SHOW VARIABLES LIKE 'validate_password%';
修改密码复杂度
set global validate_password_policy=LOW;
修改密码长度
set global validate_password_length=6;
开启 MySQL 的远程访问
grant all privileges on . to 'root'@'%' identified by 'Hy123@456' with grant option;
flush privileges;
开启 Centos7 端口 3306
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
刷新配置
firewall-cmd --reload
查看当前开放的端口
firewall-cmd --zone=public --list-ports
MySQL 的配置文件
设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
设置mysql的安装目录
basedir = /usr/local/mysql
设置mysql数据库的数据的存放目录
datadir = /data/mysql
log-bin = /data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql
innodb_log_group_home_dir =/data/mysql
设置mysql数据库的日志及进程数据的存放目录
log-error =/data/mysql/mysql.log
pid-file =/data/mysql/mysql.pid
服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout