MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。

1. 安装MySQL

想要安装MySQL我们需要先下载MySQL的安装包,我们可以去MySQL官网下载页面 下载MySQL安装包。将安装包放在/opt/mysql目录或者你想放置的目录。然后开始安装吧。

#解压压缩包
tar -xvf  mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar 

#安装Common
rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force

#安装lib
rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm

#如果遇到error: Failed dependencies: mariadb-libs is obsoleted by mysql-community-libs-8.0.21-1.el7.x86_64,清除之前安装过的依赖mysql-libs
yum remove mysql-libs

#安装client
rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm

#安装server
rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm

#如果遇到error: Failed dependencies:libaio.so.1()(64bit) is needed by mysql-community-server... 需要安装libaio.so依赖
yum install -y libaio

2. 启动MySQL

启动MySQL之前,我们需要一些设置。

#初始化数据库
mysqld --initialize
#设置文件所有者和文件关联组,拥有者皆设为mysql,群体的使用者mysql
chown mysql:mysql -R /var/lib/mysql 

然后我们来启动MySQL服务,service启动文件已经在安装时配置好了。

#启动mysql
systemctl start mysqld

#查看mysql状态
systemctl status  mysqld

#停止mysql
systemctl stop mysqld

#服务自启
systemctl enable mysqld

#启动mysql,并设置自启
systemctl enable mysqld --now

3. 配置MySQL

MySQL的配置文件在/etc目录下,配置文件的名字叫my.cnf,如果我们需要配置MySQL,那么我们可以修改这个文件。

#修改mysql配置文件,当然我们也可以提前备份一下这个文件,以后方便恢复
vim /etc/my.cnf

以下是一些简单的设置,如果有更多的需求,可以去网上搜索看看。

#For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysql] #设置客户端
# 设置mysql客户端默认字符集
#default-character-set=utf8mb4

[mysqld] #设置服务端
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password


#设置端口号,默认3306
#port=3306

# 设置mysql的安装目录
#basedir=/usr/local/mysql

# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# 允许最大连接数
# max_connections=500

# 服务端使用的字符集默认为8比特编码的latin1字符集
#character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎
#default-storage-engine=INNODB
#lower_case_table_names=1
#max_allowed_packet=16M


#跳过密码验证,之后会有获取密码的方式,如果找不到密码可以先设置跳过密码验证,改过密码后再注释掉
#skip-grant-tables

#设置performance_schema_max_table_instances 默认情况下为12500(修改后减少的内存占用很少)
#performance_schema_max_table_instances=150

#设置table_definition_cache默认情况下为2000(修改后减少内存明显)
#table_definition_cache=400

#设置table_open_cache默认情况下为4000(修改后减少的内存占用很少)
#table_open_cache=2000

#设置innodb_buffer_pool_size默认情况下为128M(修改后减少内存不明显,减少5M左右)
#innodb_buffer_pool_size=64M

4. MySQL数据库设置

那么我们已经对MySQL配置完成,现在我们需要使用它的话,就需要数据库的密码了。另外我们还需要设置什么人可以连接MySQL

#获取初始密码,这样我们就可以登录了
grep password /var/log/mysqld.log

#先登录mysql客户端,输入密码不会显示
mysql -uroot -p


#设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

#重新加载权限表
flush privileges;


#开启远程登录的密码
create user 'root'@'%' identified with mysql_native_password by '123456'; 

#重新加载权限表
flush privileges;


#赋权命令 以下命令二选一 
# all privileges 当前用户所有权限 
# *.*赋予所有权限 
# with grant option允许级联赋权

#1.任何主机访问都可以连接 '%'
grant all privileges on *.* to 'root'@'%' with grant option;

#2.指定主机访问可连接
grant all privileges on *.* to 'root'@'192.168.1.102' with grant option;

#重新加载权限表
flush privileges;

5. 防火墙放行

如果我们想要在服务器外访问MySQL,我们需要pei z配置[[防火墙]]开放MySQL端口。

#开放3306端口 
#zone=public代表公开空间 外部可访问
# --permanent表示永久有效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重载防火墙
firewall-cmd --reload

#查看开放的防火墙
firewall-cmd --zone=public --list-ports
文章作者: Willxup
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Willxup
Linux Linux CentOS MySQL
喜欢就支持一下吧