以前使用的数据库是5.5的,最近想换新的8以上的,下载解压后安装的时候出现了问题,提示 api-ms-win-crt-runtime-l1-1-0.dll丢失,最终百度了好多帖子解决
,在这里记录整理下。
提示 api-ms-win-crt-runtime-l1-1-0.dll丢失
解决方案】
api-ms-win-crt-runtime 就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和runtime库,安装Visual C++ Redistributable for Visual Studio 2015 组件即可解决此问题。
链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
点击直达
需要注意:安装前请删掉已有的 api-ms-win-crt-runtime-l1-1-0.dll(具体路径:C:\Windows\System32 和 C:\Windows\SysWOW64 检查下),vc_redit.exe安装完成会重新生成的!安装完后,如果不能正常启动MySQL Workbench,则重新启动一下电脑即可。
安装完后,重启电脑!
链接的时候还出现了Navicat 报错:1130-host ,
Navicat连接MySQL 8出现2059,貌似是5.0和8.0的密码这块的差异,没详细了解,下面有提到解决方法
安装流程
mysql-8.0.15-winx64 解压版安装 图文详解
1、官网下载
https://dev.mysql.com/downloads/mysql/
2、解压到合适的目录
3、配置环境变量
①、 path
②、MYSQL_HOME
4、新建一个my.ini 用记事本打开,复制以下代码, 没有my.ini 数据库启动时无法初始化参数
[mysql]
#;设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#;设置3306端口
port = 3306
#; 设置mysql的安装目录
basedir=D:\home\MySql\mysql-8.0.16-winx64
#; 设置mysql数据库的数据的存放目录
datadir=D:\home\MySql\mysql-8.0.16-winx64\data
#; 允许最大连接数
max_connections=200
#; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
5.进入MySQL的bin目录
在命令行窗口输入:mysqld --install,回车,提示:Service successfully installed,说明注册服务成功。
6、以管理员的身份打开cmd命令窗口,(获取初始密码,二选一)
第一种:输入mysqld --initialize命令初始化mysql的data数据目录,初始化完毕后,会在解压目录下生成一个data文件夹, 在这个文件夹下有一个.err结尾的文件,打开后会有随机生成的密码。
第二种:使用mysqld --initialize --console命令,生成随机密码
7、启动服务:net start mysql
9、修改登陆密码 ‘新密码’ 替换你需要的新密码
ALTER USER USER() IDENTIFIED BY ‘新密码’;
更新密码:
update mysql.user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’;
服务停止:输入 net stop mysql
服务启动:输入 net start mysql
Navicat连接MySQL 8出现2059 - authentication plugin 'caching_sha2_password’的解决办法
use mysql;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
这里的localhost对应本地,如果是远程访问 mysql的话,需要将localhost改成%;
password是root的密码,使用时也要进行对应修改。
解决Navicat 报错:1130-host … is not allowed to connect to this MySql server,MySQL
解决方法:
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’ and host=‘localhost’;
mysql>select host, user from user;
需要重启MySQL服务。 或 再执行 执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
亲测可用。
- 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON . TO ‘myuser’@‘192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO ‘myuser’@‘192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;