MySQL 是目前最流行的关系型数据库管理系统,其具有以下特点:
- MySQL 是开源的。
- MySQL 支持大型的数据库。相对于Excel来说,可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言(如Python、Java、C、C++等)。
- ……
本篇文章将从Window和Linux两个系统中对MySQL进行安装和配置。
1. Window下MySQL的安装与配置
1.1 下载MySQL
目前MySQL版本已经更新到MySQL8,官方宣传新的版本在很多方面得到了提升。但为了追求稳定,建议大家选用MySQL5.7版本。
进入MySQL官网(https://dev.mysql.com/downloads/mysql/),选择MySQL Community Server(社区版,该版本完全免费,但官方不支持技术支持),根据Window系统是32位还是64位,选择合适的5.7版本。
1.2 安装MySQL
下载完后,将 zip 包解压到相应的目录(一定要选用英文文件夹,以避免出现不必要的错误)。这里将解压后的文件夹放在 D:\mysql-5.7.28 下。解压后的文件如下图所示:
1.3 配置MySQL
1)配置环境变量
MySQL安装目录下有一个bin目录,这个目录里是MySQL的核心内容,里面包含一些可执行的文件或脚本。通过配置系统环境变量,可以直接在终端执行相关命令。下面介绍怎样手动配置环境变量。具体操作步骤如下:
-
桌面右键我的电脑 --> 属性 --> 高级系统属性 --> 高级。
-
点击环境变量(N) --> 在系统变量中选择path变量。
-
单击编辑,在编辑系统对话框中,将MySQL应用程序的bin目录(D:\mysql-5.7.28\bin)添加到变量值当中,用分号将其与其他路径分隔开。
点击确定,这样就完成了配置环境变量的操作。
2)更改MySQL配置
接下来,还需要对MySQL进行一些基本配置。在MySQL文件夹中新建my.ini配置文件,编辑my.ini配置以下基本信息:
# MySQL客户端参数
[client]
# 设置MySQL客户端默认字符集
default-character-set=utf8
# MySQL服务端参数
[mysqld]
# 设置3306端口
port = 3306
# 设置MySQL安装目录
basedir =D:\\mysql-5.7.28
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
1.4 启动及登录MySQL
1) 启动MySQL
- 以管理员身份打开CMD命令行工具,切换目录。
C:\Users\Administrator> d:
d:\> cd d:/mysql-5.7.28/bin
- 执行以下命令:
d:\mysql-5.7.28\bin> mysqld --initialize-insecure --user=mysql
将看到在安装目录下,多出一个data文件夹。
- 输入以下命令,安装MySQL服务,出现“Service successfully installed”,代表服务安装成功:
d:\mysql-5.7.28\bin> mysqld --install mysql5.7 --defaults-file="D:\\mysql-5.7.28\\my.ini"
Service successfully installed.
- 输入以下命令,启动MySQL服务:
d:\mysql-5.7.28\bin> net start mysql5.7
mysql5.7 服务正在启动 .
mysql5.7 服务已经启动成功。
2)登录MySQL
当MySQL服务已经运行时,可通过MySQL自带的客户端工具登录MySQL数据库中,输入以下格式命令:
mysql -h 主机名 -u 用户名 -p
如果需要登录本机的MySQL数据库,只需输入以下命令:
mysql -u root -p
按回车确认,若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后如下图所示:
1.5 修改MySQL数据库的用户名和密码
1)修改数据库用户名
# 进入数据库
mysql> use mysql
Database changed
# 更改用户名
mysql> update user set user='Newname' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 查询目前已有的用户名
mysql> select user from mysql.user;
+---------------+
| user |
+---------------+
| Newname |
| mysql.session |
| mysql.sys |
+---------------+
3 rows in set (0.00 sec)
2)修改数据库的登录密码
# 修改数据库登录密码
mysql> alter user 'root'@'localhost' identified by 'youpassword';
# 刷新权限
mysql> flush privileges;
其中root为使用者的用户名,youpassword为要修改的新密码,修改完以后,继续刷新一次数据库,就可以使用自己修改过得密码登录了。
2. Linux下MySQL的安装与配置
2.1 下载MySQL
同样到MySQL官网进行下载,Linux版本的MySQL推荐下载Linux-Generic版本。
2.2 安装MySQL
-
使用Xftp工具将下载好的安装包上传到Linux上。
创建用户组及用户名
# 添加用户组
[root@localhost ~]# groupadd mysql
# 新建mysql用户
[root@localhost ~]# useradd -r -g mysql mysql
- 安装依赖
[root@localhost ~]# yum install -y libaio
- 解压并创建快捷链接
# 解压
[root@localhost ~]# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 进入解压后的文件夹
[root@localhost ~]# cd /usr/local
# 创建快捷链接
[root@localhost local]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql
- 添加环境变量
[root@localhost local]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
[root@localhost local]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
[root@localhost local]# source /etc/profile
[root@localhost local]# source ~/.bashrc
- 创建数据和日志目录
# 创建目录
[root@localhost local]# mkdir -p /data/mysql/{data,binlogs,log}
[root@localhost local]# mkdir -p /usr/local/mysql/{etc,run}
# 创建快捷链接
[root@localhost local]# ln -sv /data/mysql/data/ /usr/local/mysql/data
[root@localhost local]# ln -sv /data/mysql/log/ /usr/local/mysql/log
[root@localhost local]# ln -sv /data/mysql/binlogs/ /usr/local/mysql/binlogs
# 授予权限
[root@localhost local]# chown -R mysql.mysql /data/mysql/
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/{data,binlogs,log,etc,run}
- 配置my.cnf
# 配置my.cnf
[root@localhost local]# vi /usr/local/mysql/etc/my.cnf
# 创建快捷链接
ln -sv /usr/local/mysql/etc/my.cnf /etc/my.cnf
配置信息如下,可根据个人需求进行更改。
[client]
port=3306
socket=/usr/local/mysql/run/mysql.sock
[mysqld]
port=3306
socket=/usr/local/mysql/run/mysql.sock
pid_file=/usr/local/mysql/run/mysql.pid
datadir=/usr/local/mysql/data
skip-external-locking
key_buffer_size=32M
max_allowed_packet=16M
table_open_cache=1024
sort_buffer_size=1m
net_buffer_length=8K
read_buffer_size=1m
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
thread_cache_size=16
query_cache_size=32M
tmp_table_size=32M
performance_schema_max_table_instances=500
explicit_defaults_for_timestamp=true
#skip-networking
max_connections=500
max_connect_errors=100
open_files_limit=65535
slow_query_log=on
long_query_time=2
slow_query_log_file=/usr/local/mysql/log/mysql_slow_query.log
log-error=/usr/local/mysql/log/mysql_error.log
log-bin=/usr/local/mysql/binlogs/mysql-bin
binlog_format=mixed
server-id=10
expire_logs_days=10
early-plugin-load=""
default_storage_engine=InnoDB
innodb_file_per_table=1
innodb_data_home_dir=/usr/local/mysql/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/usr/local/mysql/data
innodb_buffer_pool_size=128M
innodb_log_file_size=32M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
[mysqldump]
quick
max_allowed_packet=16M
[myisamchk]
key_buffer_size=32M
sort_buffer_size=768K
read_buffer=2M
write_buffer=2M
[mysqlhotcopy]
interactive-timeout
- 初始化MySQL
# 初始化MySQL,此步骤会产生临时密码,需记录下来
[root@localhost mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 初始化ssl
[root@localhost mysql]# mysql_ssl_rsa_setup --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
9.设置启动服务
[root@localhost mysql]# vi /usr/lib/systemd/system/mysqld.service
具体设置参数如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/run/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/run/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
- 设置开机启动
[root@localhost mysql]# systemctl enable mysqld.service
# 查看是否以启动
[root@localhost mysql]# systemctl is-enabled mysqld
- 启动MySQL
[root@localhost mysql]# systemctl start mysqld
# 登录MySQL
[root@localhost mysql]# mysql -u root -p
登录MySQL时,需键入密码,此密码为初始化MySQL时产生的临时密码。
- 修改密码
登录成功后,将临时密码修改为自己的密码。
mysql> set password xxxxx;
# 退出数据库
mysql> exit
3. 使用Navicat对MySQL进行管理及开发
Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
它可以对本机或远程的MySQL或者其他数据库(如SQL Server、SQLite、Oracle等)进行管理或者开发。
Navicat Premium是一个可多重连接的数据库管理工具,可同时连接不同类型的数据库,能简单快速地在各种数据库系统间传输数据。其主要有以下几种功能:
3.1 Navicat的使用
下载
根据自己的电脑配置在Navicat官网下载相应的安装包,官方提供14 天 免费的全功能 Navicat 试用版。-
连接MySQL服务
Navicat下载安装完成后,其界面如下所示:
1)新建连接,点击菜单栏中的文件 --> 新建连接 ---> MySQL,进入创建连接界面。
2)添加链接名,以及本地IP或localhost,以及MySQL端口号(默认为3306),并输入MySQL账号及密码。点击测试连接,出现以下弹窗就是成功链接MySQL数据库服务了。
3)新建数据库,右键点击刚建好的数据库,点击新建数据库,进入新建数据库界面。
3)删除数据库,右键点击需要删除的数据库,点击确认删除即可。
4)创建数据表,选择数据库,右键点击表,点击新建表即可。
5)修改数据表,选中所需修改的数据表,右键点击设计表,然后和创建数据表一样去编辑字段,数据类型,完整性约束等。
6)删除数据表,选中需要删除的数据表,右键选择删除表即可。
7)查询数据,选中需要查询的某个数据库,右键选择新建查询,进入查询界面,在里面输入查询语句即可。
8)备份数据库,选择需要备份的数据库,右键选择转储SQL文件,选择结构和数据,存储导数需要保存的位置,确定即可。
3.2 Navicat的快捷键
Navicat的快捷键可通过官网获取(https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual/index.html#/hot_keys),其主要快捷键如下:
至此,MySQL在Window和Linux两个平台上安装及使用已全部完成。