前言
可能有些人不太了解为什么要安装MySQL,或者是为什么要有数据库。这个问题在我学习编程的时候,有同学问过我,还有一些不懂编程的人问自己数据库是什么的时候,我的回答是在网页上浏览数据的时候,如果要数据是动态实时变化的,这个时候就需要展示不断修改的数据,不断修改的数据如何被记录,那这个时候就需要数据库,顾名思义,数据库就是用来保存数据,网页通过程序将保存的数据进行展示
,所以需要安装数据库来存储数据。数据库的产品有很多比如DB2、Oracle、MySQL、PostgreSQL等。
文章主要是介绍如何在Centos7操作系统中安装MySQL
。MySQL是一款免费开源的数据库(当然这是在它的所有权落入Oracle之前,MySQL先是卖给了SUM公司,后来SUN被甲骨文收购,MySQL就属于Oracle公司的产品了)。现在MySQL有两个不同的产品(或者说两个不同的分支吧)。一个是收费版MySQL
,一个是免费版MariaDB
。MariaDB主要是由社区进行维护。虽然是两个不同的分支,但是在使用上没有什么区别,不管是SQL语法还是环境运维,几乎都是一样的,所以MySQL和MariaDB不会产生多余的学习成本。以下是关于MySQL和MariaDB的一些区别,就当了解一下即可:
- MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发。
- MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL5.5中了解到MariaDB的所有功能。从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能
- 在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB
- MariaDB的API和协议兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和进度报告
- 这意味着,所有使用MySQL的连接器、程序库和应用程序也将可以在MariaDB下工作
环境说明
Centos7、JDK1.8、MySQL5.7.29
下载地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
选择对应的环境下载即可。下载完成后我们可以通过xftp等工具将下载好的安装包上传到Centos7系统中,然后进行安装。
开始安装
删除历史版本
rpm -qa|grep mysql rpm -e –nodeps filename find / -name mysql rm -rf filename
解压安装包
# 首先通过cd命令进入到安装包所在的目录,然后执行 cd /opt tar –zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
创建安装目录
mkdir /usr/local/mysql
移动文件
移动解压后的文件夹到指定目录
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
创建数据文件夹
在移动后的目录下新建存储数据的文件夹data,MySQL的表结构、表数据及索引等信息都存储在该目录下
cd /usr/local/mysql mkdir data
添加账户
给当前linux系统添加账户,以后可用于管理mysql数据库
userdel mysql groupdel mysql groupadd mysql useradd -g mysql mysql
查看MySQL初始密码
进入mysql的目录开始安装,查看安装信息记住初密码:找有temporary password这一行
cd /usr/local/mysql ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
移动启动文件
将安装后的路径/usr/local/mysql/support-files/中的mysql.server复制到/etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
MySQL配置文件
如果/usr/local/mysql/support-files有my-default.cnf则将其拷贝到/etc/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
如果没有则在/etc下新建my.cnf文件
touch my.cnf
编辑my.cnf配置文件
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] skip-name-resolve #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M
修改文件权限
chown 777 /etc/my.cnf chmod +x /etc/init.d/mysqld
配置环境变量
设置环境变量,以便能在任意地方运行mysql命令登录数据库
vim /etc/profile 在文件的最后,加上下面两行: #mysql environment export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin
刷新环境变量
source /etc/profile
添加软链接
ln -fs /usr/local/mysql/bin/mysql /usr/bin/mysql
添加软链接和配置环境变量都是为了便于执行脚本,这样执行MySQL命令的时候不用到MySQL的安装目录,在路径执行都可以。添加软链接和配置环境变量任选一个操作即可,同时都进行配置也没问题
设置防火墙
防火墙开放mysql数据库端口3306
# 光标一定到22端口行yy复制,p粘贴,i进入编辑模式将粘贴的端口由22修改为3306 vim /etc/sysconfig/iptables
重启防火前
service iptables restart
查看防火墙状态,检查是否已开放3306端口
service iptables status
启动MySQL
/etc/init.d/mysqld start 或者: ./support-files/mysql.server start 或者: service mysqld start
登录MySQL
mysql -u root -p 然后输入第8步的初始密码
看见一些数据库的相关信息,查询数据版本也可以通过登录这种方式哟,O(∩_∩)O哈哈~
修改root的密码
set password = password('123456'); 也可以指定用户:建议用上面的就行 set password for 'root'@'localhost'=password('123456');
刷新配置
flush privileges;
添加远程访问
添加远程访问本服务器的MySQL数据库权限问权限
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
刷新配置
flush privileges;
重启MySQL
/etc/init.d/mysqld restart 或者: ./support-files/mysql.server restart 或者: service mysqld restart
设置开机启动
检查自启动项列表中没有mysqld这个
chkconfig --list mysqld
如果没有设置过,就添加
chkconfig --add mysqld
命令连接MySQL
在Centos中通过命令连接数据库后,需要执行sql文件
连接MySQL
mysql -u root -p
创建数据库
create database nacos_config;
进入数据库
use nacos_config
执行SQL文件
source /usr/local/nacos/conf/nacos-mysql.sql; # 文件的绝对路径
以上就是在Centos7上安装MySQL的全过程,其中需要注意的是,MySQL安装成功后一定要对防火墙进行设置(网络可以访问),并且开启访问权限(有资源操作权限),否则无法进行使用。在MySQL服务器本地执行sql文件的时候,先登录MySQL,再通过磁盘的绝对路径执行sql文件。