MySQL的安装与基本配置

因为最近需要学习后端方面的知识,所以开始接触MySQL,中间踩了很多坑(无论是Windows端还是Linux端),花了两天才完全配好。写下这篇文章就算是个对MySQL安装的记录吧。

Windows端

1、前期准备

首先,前往MySQL官网下载相关的Windows端压缩包。注意!这里需要提醒的是,千万千万不要下载最新版本的MySQL!最新版本是MySQL8(截至2018.6.6),这个版本现阶段Bug奇多,而且网上没有对应的教程!本人建议下载5.6左右的版本,这几个是现在网上教程比较多、Bug相对较少的版本。下载后解压,自定义安装到自己喜欢的地址。然后,在你的MySQL安装目录下,会有一个my-default.ini的配置文件。此时我们需要稍微修改一下这个配置文件。我的ini文件配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[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 leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....


# 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

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

配置完ini文件后,我们的前期准备工作就完成了。

2、启动MySQL数据库

现在我们已经可以开始尝试启动MySQL数据库了,主要的命令有三个。以我的Windows为例,先以管理员身份打开cmd,然后键入D:(更改磁盘目录,我的MySQL安装在D盘,所以要修改路径,cmd路径默认为C)。更改到D盘后,可以看到D:\>的标志。然后进入MySQL的bin目录所在地:cd D:\mysql-5.6.37-winx64\mysql-5.6.37-winx64\bin。此时我们已经进入到了MySQL的bin目录,如果你是5.7以下的版本,再分别输入以下命令:mysqld installnet start mysql即可。如果是5.7版本,则需要在mysqld install后键入命令mysqld --initialize-insecure以进行data目录的初始化。

注意:在输入mysqld install时,可能会出现msvcp100.dll缺失的报错,此时只要到微软官网下载VS_2010_vcredist_x64即可。

3、登陆并设置MySQL密码

在当前目录下(bin目录)输入mysql -u root -p,此时会出现Enter password:语句,因为我们是初次登陆MySQL,所以直接按下Enter键即可。进入MySQL后cmd显示如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

现在我们可以开始设置自己root账户的密码。输入set password=password('你想要设置的密码');即可。

4、系统环境变量的设置

如果我们每次使用MySQL,都要先进入到MySQL所在盘,再进入MySQL所在的bin目录,就会很麻烦。这时,我们可以通过设置系统的环境变量来简化过程,使得我们可以在cmd的初始界面就可以进入MySQL。打开此电脑->属性->高级->环境变量,在用户变量的path中追加D:\mysql-5.6.37-winx64\mysql-5.6.37-winx64\bin;(此处填你的MySQL的bin文件夹路径)此时再打开cmd,直接打mysql即可进入数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Users>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

5、GUI工具及其它

  • sqlyog(可能要翻墙):轻量级数据库可视化工具,能节省很多时间。
  • cmd中的启动和停止服务命令:net stop mysqlnet start mysql
  • cmd中退出mysql环境的命令:exit

Linux端

1、下载与安装

声明:本人Linux环境为CentOs7.3,Ubuntu的会有所不同
首先,使用yum安装MySQL:

1
yum install mysql-server -y

安装完成后,启动 MySQL 服务:

1
service mysqld restart

设置 MySQL 账户 root 密码:

1
/usr/bin/mysqladmin -u root password '你想要设置的密码'

将 MySQL 设置为开机自动启动:

1
chkconfig mysqld on

到这步,我们在Linux下的MySQL安装就基本完成了,现在我们已经可以在Linux内愉快的使用MySQL啦~~

2、开启远程连接

上面的Windows端介绍了sqlyog这款可视化工具。其实它不仅可以用于Windows端的mysql,也可以远程连接Linux服务器下的MySQL。

具体配置方法如下:
在MySQL控制台下分别输入:

1
2
3
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; # root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
flush privileges; # 重载系统权限
exit;

此时已经设置好了MySQL的远程连接设置,接下来就是开放端口(一般是3306或3309):

1
2
// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

关于CentOs7的firewalld设置具体可以看CentOS7使用firewalld打开关闭防火墙与端口Centos7开放3306端口

3、修改编码格式

当我们使用MySQL的时候,可能会遇到出现中文乱码的情况,这是为什么呢?我们可以在MySQL控制台下输入show variables like 'character%';命令来查看一下。你会发现,编码格式并不全都是utf8,在database一栏编码格式为latin1,这是MySQL的默认编码。也正是因此,中文输入才会在数据库中变成乱码。这个时候,我们就要修改MySQL的my.cnf配置文件了,具体修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 如果没有client和mysql栏就不必添加上去了,配置的核心在于mysqld
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
+ default-character-set=utf8
...
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
+ character-set-server=utf8
...
[mysql]
no-auto-rehash
+ default-character-set=utf8

修改完成之后,在Linux命令行下输入service mysql restart重启mysql服务。这时在MySQL控制台再次输入show variables like 'character%';,就会发现,原本是latin1的都变成了utf8,这时,一般来说,就已经不会出现中文乱码了。

注意:以上是一般情况,有时会出现极其特殊的情况,那就是,你什么都配置成功了,服务器端、网页端等等等等都是utf-8编码,但显示数据库就是中文乱码!!这时基本就只有一个办法了,那就是,每次你要进行增删改查前,都先进行SET NAMES 'UTF8';的操作。比如我用的是php语言,我在每次insert前都先来一句mysqli_query("SET NAMES UTF8");以便不会出现中文乱码。同时,我个人认为,即使你的MySQL一切正常,也应该输入这条语句,因为它能让你的网页(或其它吧)在更多的服务器上正常的显示(有些可能就是乱码,怎么设置都没辙…当然也可能是因为我菜吧….)。

总结

这次弄MySQL,一是因为web程序设计课需要用到,二是我们大创也有涉及到数据库的使用,所以就不辞劳苦、百费周折的搞了出来。其实说实话,我一个懒宅,本来是不想搞这些麻烦事的,但是,唉(无奈+委屈)…

------ 本文结束 ------

版权声明

拾光宅巷 by TimeAlley is licensed under a Creative Commons BY-NC-ND 4.0 International License.
TimeAlley创作并维护的拾光宅巷博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于拾光宅巷 博客( http://timealley.name ),版权所有,侵权必究。

分享到:
0%