Windows环境

解压版安装

版本:mysql-5.6.42-winx64.zip 链接:https://pan.baidu.com/s/1wCV0Ap3OOKQFLWfXxOEDyw 提取码:6mer

  1. 解压

解压之后可以将该文件夹改名,放到合适的位置,个人建议把文件夹改名为MySQL Server 5.6,放到C:\Program Files\MySQL路径中。当然你也可以放到自己想放的任意位置。

  1. 配置环境变量

在其后面添加: mysql bin文件夹的路径 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )

  1. 修改配置文件

先不要忙着启动mysql,否则会报错,需要先修改一下mysql安装的根目录下的my-default.ini文件,将my-default.ini复制一份重命名为my.ini文件,并修改。

  1. [mysqld]
  2. #mysql安装目录
  3. basedir=C:\Program Files\MySQL\MySQL Server 5.6
  4. #mysql数据库文件存放目录,此处指定mysql安装目录的data目录下
  5. datadir=C:\Program Files\MySQL\MySQL Server 5.6\data
  1. 安装服务

以管理员身份运行cmd。进入到mysql安装目录的/bin目录下。
执行mysqld -install命令安装服务。提示Service successfully installed. 表示安装成功。

mysqld -install
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld -install
Service successfully installed.

注意:不管有没有配置过环境变量,都要进入bin文件夹,否则之后启动服务仍然

错误: 由于找不到MSVCP100.dll,无法继续执行代码。重新安装程序可能会解决此问题。 解决:下载vc2010运行库 64位(根据本机系统环境确定是32位还是64位) ,运行安装

错误:Install/Remove of the Service Denied! 解决:权限不够,检查是否是使用管理员权限运行

错误:系统找不到文件 解决:权限不够,检查是否是使用管理员权限运行

  1. 启动服务

cmd命令行中接着输入

net start mysql

启动成功

C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。

错误:提示“错误2” 解决:检查一下是否修改过配置文件或者是否进入在bin目录下操作,如果配置文件修改正确并且进入了bin文件夹,需要先删除mysql服务(输入 mysqld -remove)再重新安装mysql服务(输入 mysqld -install)

错误:提示“错误1067” 解决:可能是配置文件修改错误,确认一下配置文件是否正确

  1. 登录

服务启动成功之后,就可以登录了

D:\>mysql -u root -p
Enter password: //此处直接回车,第一次登录没有密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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>

登录成功。

  1. 设置密码:

解压版配置完成后,登录时默认是没有密码的,重启cmd.exe

  • 方法一:修改mysql表的方法

使用当前密码进入mysql(初次使用没有密码,则不输密码),选择mysql库

mysql> use mysql
Database changed

修改user表记录,完成密码修改:

mysql> update user set password=password("123456") where user='root' and host='localhost';
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)

此时,密码设置成功,下次登录后即可使用新的密码登录。

  • 方法二:使用mysqladmin命令来设置密码
    mysqladmin -u root -p password 回车
    Enter password:输入当前密码,默认密码为空,则直接回车。
    New password:输入新的密码,回车,
    Confirm new password:确认密码,回车
    
    此时,密码设置成功,下次登录后即可使用新的密码登录。
  1. 修改默认字符集

查看字符集

mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | latin1                                                  |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | latin1                                                  |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.6\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)

编辑配置文件my.ini

在[client]节点下添加

default_character_set = utf8

在[mysqld]节点下添加

character_set_server = utf8

注意:[client]一定要在[mysqld]上方

需重启mysql服务后才能生效,windows下不能直接重启mysql服务,只能先关闭,再启动
关闭mysql服务 net stop mysql

D:\>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

启动mysql服务 net start mysql

D:\>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

然后再查看 mysql字符集,filesystem外字符集都已变为utf8

mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | utf8                                                    |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.6\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)

安装包安装

// TODO

Linux 环境

Linux 版本 7.1

RPM包安装

下载rpm包

https://downloads.mysql.com/archives/community/

这里使用5.6.42版本,只下载server 和client即可
image.png
下载完成后,上传到服务器

检查是否有安装的mysql 和mariadb

[root@www ~]# rpm -qa | grep -i mysql
[root@www ~]# rpm -qa | grep -i mariadb

如果存在,则卸载

[root@www ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64

卸载时提示,说明有依赖

error: Failed dependencies:
    libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

使用yum remove +包名卸载

[root@www ~]# yum remove mariadb-libs-5.5.41-2.el7_0.x86_64

再次执行rpm -qa 检查是否已卸载

创建mysql用户和组

查看是否存在mysql用户和组

cat /etc/passwd
cat /etc/group

创建mysql组和用户

groupadd mysql
useradd -r -g mysql mysql

安装

使用 rpm -ivh 包名 安装
分别安装 下面的rpm包

MySQL-client-5.6.40-1.el6.x86_64.rpm
MySQL-server-5.6.40-1.el6.x86_64.rpm

安装client

[root@www mysql]# ll
total 74616
-rw-r--r--. 1 root root 18895560 Aug 11 22:08 MySQL-client-5.6.40-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 57504164 Aug 11 22:10 MySQL-server-5.6.40-1.el6.x86_64.rpm
[root@www mysql]# rpm -ivh MySQL-client-5.6.40-1.el6.x86_64.rpm
warning: MySQL-client-5.6.40-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:MySQL-client-5.6.40-1.el6        ################################# [100%]

安装server

[root@www mysql]# rpm -ivh MySQL-server-5.6.40-1.el6.x86_64.rpm 
warning: MySQL-server-5.6.40-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:MySQL-server-5.6.40-1.el6        ################################# [100%]
...
...
...

server安装过程中提示有随机密码已生成在某个位置

image.png
image.png

使用rpm命令检查是否安装成功

[root@www ~]# rpm -qa | grep -i mysql
MySQL-server-5.6.40-1.el6.x86_64
MySQL-client-5.6.40-1.el6.x86_64

使用 ps -ef 检查mysql进程是否存在,判断是否已启动

[root@www ~]# ps -ef | grep mysql 
root      6269  5929  0 22:29 pts/0    00:00:00 grep --color=auto mysql

如果不存在,使用启动命令启动,常用命令如下:

service mysql start
service mysql status
service mysql stop

错误一: rpm -ivh MySQL-server-5.6.42-1.el7.x86_64.rpm warning: MySQL-server-5.6.42-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: perl(Data::Dumper) is needed by MySQL-server-5.6.42-1.el7.x86_64 解决:yum -y install autoconf

重置mysql密码

方法一:使用随机密码登录mysql

[root@www ~]# mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

如果提示以上错误,重启mysql服务可以解决(如果不能解决,可能要找其他方法)

登录进去后,使用以下命令修改密码

[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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> set password for root@localhost=password('123456');
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>

默认随机密码登录的是不可以进行任何操作的,必须要修改密码

方法二:使用mysqladmin

[root@www ~]# mysqladmin -u root -p password
Enter password: 输入当前密码,也就是刚才生成的随机密码
New password: 输入新密码
Confirm new password: 输入新密码

修改权限

修改权限使其可以远程登录mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

# 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

GRANT:赋权命令ALL PRIVILEGES:当前用户的所有权限 ON:介词 .:当前用户对所有数据库和表的相应操作权限 TO:介词 ‘root’@’%’:权限赋给root用户,所有ip都能连接 IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456 WITH GRANT OPTION:允许级联赋权 [

](https://blog.csdn.net/u010953706/article/details/95985946)

修改字符集

修改my.cnf文件
查看/etc目录下是否存在my.cnf文件,如果不存在,则在/usr/share/mysql目录下复制my-*.cnf文件到/etc目录下,改名为my.cnf

[root@www mysql]# pwd
/usr/share/mysql
[root@www mysql]# ll | grep *.cnf
-rwxr-xr-x. 1 root root   1126 Feb 26  2018 my-default.cnf
[root@www mysql]# cp my-default.cnf /etc/my.cnf

vim /etc/my.cnf

[mysqld]
character_set_server = utf8
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>