Java开发环境系列:MySQL安装与配置(绿色版、安装版、ECS版)及常见异常分析

mysql绿色版(免安装版本)的安装与卸载

1、下载压缩包,解压

2、配置环境变量

PATH:%MYSQL_HOME%\bin

3、在安装目录下新建my.ini配置文件

[mysql]

default-character-set=utf8

[mysqld]

basedir=D:\DevTools\mysql-5.7.20-winx64

datadir=D:\DevTools\mysql-5.7.20-winx64\data

port=3306

max_connections=200

character-set-server=utf8

default-storage-engine=INNODB

4、安装服务

进入MYSQL安装路径/bin目录下,以管理员身份运行cmd:

mysqld install

或者

mysqld --install MySQL --defaults-file="D:\DevTools\mysql-5.7.20-winx64\my.ini",指定路径,

其中的MySQL是安装服务器的名称,可以指定任何名称。安装完成后会提示下面的信息:Service successfully installed,即表示成功安装,安装成功后会在系统的服务组策中添加该服务,在使用时只需要开启即可。

注意:

在运行安装命令时一定要注意必须cmd内的路径问题,该路径必须在mysql的bin所在的路径,比如我的mysql解压到D:\Program Files(x86)\MySql文件夹中,那么cmd当前路径就必须为D:\Program Files(x86)\MySql\bin,否则在安装完成后启动服务时会出现发生错误提示。系统找不到指定的文件

如果出现以上提示,可在注册表中修改:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql

5、初始化data

新版mysql解压后安装目录没有data文件夹,需要初始化,注意不能手动创建,因为初始的时候还随机生成了一个初始root密码,初始化命令如下所示:

mysqld --initialize

没有任何提示说明初始化成功,在data文件夹下找到一个xxx.err的文件,最后一行是root的初始密码:h4Owt/wXudOD

重新设置密码(若提示Can't connect to MySQL server on 'localhost' (10061),说明MySQL服务没起,应先执行net start mysql,若无法启动服务,重启电脑就行了):

mysql -u root -p,

输入初始密码,

set password = password('123456');

6、常用MySQL服务命令:

启动:net start MySQL

停止:net stop MySQL

删除:mysqld --remove MySQL

或者在服务中启动

7、卸载MySQL服务

卸载原mysql服务,重新安装:


mysql安装版(非绿色版)的安装方法

一、安装和卸载

Mysql安装路径:   

C:\Program Files\MySQL\MySQL Server 5.5\

Mysql数据文件存放的路径:

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\

卸载的时候要把两个路径都删掉(my.ini配置文件中可以找到这两个路径)

mysql默认端口号:3306

mysql的默认字符集是latin1:(不支持中文.),改为utf8

Include bin Directory in Windows PATH.需要将其前面的钩 勾选上.不勾的话,在cmd窗口下无法识别sql命令,就得自己配置环境变量。

设置mysql最高管理员密码.

最后界面四个钩

点击Execute按钮,四个勾都选中则安装成功。

测试mysql数据库是否安装成功.(root:最高管理员的用户名就叫root)

cmd> mysql -u root -p 回车

卸载:

去mysql安装路径下  my.ini 

basedir="C:/Program Files/MySQL/MySQL Server 5.5/"

datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"

控制面板中卸载,然后手动删除以上两个文件夹。


mysql在阿里云服务器上安装与卸载

1、安装rpm包

rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

2、安装mysql

yum -y install mysql-community-server

3、加入开机启动

systemctl enable mysqld

4、启动MySQL服务进程

systemctl start mysqld

5、配置root用户密码

mysql_secure_installation

6、开启新的shell窗口,连接数据库

mysql -u root -p

输入密码登录即可。


重置登录密码

  • 1.停止mysql服务. services.msc进入服务界面 停止mysql服务
  • 2.打开一个cmd窗口. 输入mysqld --skip-grant-tables 启动了一个新的mysql服务 跳过了权限.(窗口千万不要关闭.)
  • 3.新打开一个cmd窗口. 输入mysql -u root -p 回车
  • 4.不需要输入密码直接可以进入.
  • 5.输入命令 use mysql; 使用mysql数据库.
  • 6.输入命令 update user set password=password('123456') where user='root';
  • 7.关闭两个cmd窗口.在进程中结束mysqld的进程.
  • 8.重启服务.

开启远程连接

1、root 用户登陆 MySQL

输入“cmd”,进入控制台,

登录数据库: mysql -u root -p

查看用户的f访问主机权限: use mysql; select host,user from user;

2、创建远程登陆用户并授权

grant all privileges on db_blog3.* to root@'192.168.136.131' identified by '123456';

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

3、立即生效(必须)

flush privileges;

生效后,在名为mysql的数据库的user表中会看到多了一条记录。

解释:

all privileges:赋予所有权限给指定用户;

db_blog3.*:数据库的所有表;

root:root用户,表示给哪个用户授权,此处是给root;

192.168.136.131:允许root用户在哪个远程IP登录,设置为'%',表示不限制IP;

123456:设置远程访问的密码


创建用户并限制访问

1、创建用户

create user 'remote_ahqy'@'%' identified by 'remote_ahqy';

2、创建视图

create view view_equip_detail as select equip_id,equip_no,equip_name from equip_detail;

3、授权访问

--表

grant select on guard_pro.equip_detail to 'remoteuser'@'%' identified by '123456';

--视图

grant select on guard_pro.view_equip_detail to 'remoteuser'@'%' identified by '123456';

4、登录数据库

可以看到,使用remoteuser用户登录进来只能看到guard_pro库下的equip_detail表


mysql caching_sha2_password异常分析

使用navicat连接mysql报错

解决办法:

通过命令行登录mysql后,

输入:

alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

更改root账户使用的验证插件为mysql_native_password。


中文乱码或提示ERROR 1366 (HY000): Incorrect string value: '\xC3\xF7' for column 'name' at row 1 ;

插入一条中文记录: 语句: insert into employee(id,name,job,salary) values(4,'小明','清洁员',1500); 提示: ERROR 1366 (HY000): Incorrect string value: '\xC3\xF7' for column 'name' at row 1 ; 原因: mysql client 采用默认字符集编码 gbk 查看字符集: show variables like 'character%'; 设置字符集: set character_set_results=gbk;或set names gbk; 解决方法: 修改客户端(CMD窗口即为一个客户端)字符集为gbk,这种方法只是临时的;重启CMD窗口仍然乱码。


1045    Access denied for user 'root'@'localhost' (using password:YES)

这个意思是说:用户“root”@本地主机的访问被拒绝。 表面上看是帐号密码错误,实际上可能有更深层次的原因,可以按以下方法排查一下: 1、检查用户名密码是否正确(如果实在忘记了,可以通过上面的方法重设密码) 2、检查MySQL是否正常启动(右键任务栏>任务管理器>服务>打开服务,或者wind+r输入services.msc回车,找到MySQL服务,在状态列看看是否正在运行) 3、检查当前启动的MySQL服务是否是你安装的那个,看下图中可执行文件的路径(有些程序比如宝塔,织梦套装等安装的MySQL也注册了服务,而且被设置为开机启动,把原来的给替换掉了,因为服务变了,帐号密码自然也变了)

4、如果是上面的原因,需要把该服务删掉(命令:mysqld --remove MySQL),再按上面的教程重新安装。

查询库中所有表所占空间大小

SELECT CONCAT(table_schema,'.',table_name) AS 'TABLE_NAME', CONCAT(ROUND(table_rows / 1000000, 4),'M') AS 'ROW_SIZE', CONCAT(ROUND(data_length / (1024 * 1024),2),'M') AS 'DATA_SIZE', CONCAT(ROUND(index_length / (1024 * 1024),2),'M') AS 'INDEX_SIZE', CONCAT(ROUND((data_length + index_length) / (1024 * 1024),2),'M') AS 'TOTAL_SIZE' FROM information_schema. TABLES WHERE table_schema = 'bootdo' ORDER BY 3 desc;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券