部署MySQL
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
本文链接:
/archives/buildmysql
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Willxup!
喜欢就支持一下吧