一、数据库简介
二、Windows下安装mysql 8
1.找到下载的mysql-8.0.11-winx64.zip,解压到C:\MySQL\
2.管理员打开命令提示符:
>cd C:\MySQL\mysql-8.0.11-winx64\bin
>mysqld install
>mysqld --initialize
>net start mysql,发现启动成功
>mysql -u root -p,输入密码直接enter发现登录请求被拒绝
3.到C:\MySQL\mysql-8.0.11-winx64\data下找到”.err”文件,记事本打开。找到”[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 密码在此”,复制密码
4.回到cmd,再次mysql -u root -p,粘贴刚才复制的密码,登录成功
5.mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';(注意此处有;结尾),修改密码成功
6.添加环境变量
7.今后可以>mysql -u root -p,输入新密码启动
附:还有一种在\mysql-8.0.11-winx64下新建my.ini文件和data文件夹,命令行进入bin目录>mysqld --initialize-insecure --user=mysql的免密安装方法(即安装后密码为空,直接回车就好)
三、ubuntu下安装MySQL
1.$sudo apt-get update
$sudo apt-get install -y mysql-server mysql-client查看是否开机启动
查看mysql的端口:
2.vim /etc/mysql/mysql.conf.d/mysqld.cnf
3.vim /etc/mysql/conf.d/mysqld.cnf
启动$ mysql -u root -p,输入密码即可
四、简单操作
#登录命令(会提示输入root密码,初始为空,直接回车)
命令行->mysql -u 用户名 -p (通常使用的是root用户登录,即->mysql -u root -p)
命令行->mysql_secure_installation #修改root密码等
mysql>show databases; #显示当前数据库
mysql>use mysql; #进入mysql库
mysql>show tables; #显示当前库中的表格
mysql>select * from user; #显示user相关内容
mysql>select version(); #显示版本
mysql>select now(); #显示时间
mysql>exit #退出
五、Navicat连接数据库
(一)连接Windows数据库
①mysql 8.0.11中,可以先允许远程登录许可(此步可以视情况跳过):
命令行->mysql_secure_installation
mysql>CREATE USER ‘root’@’%’ IDENTIFIED BY ‘你的密码’
mysql>grant all on *.* to ‘root’@’%’
②Navicat连接,出现了新问题如下:
错误原因是mysql服务器要求的认证插件版本与客户端不一致造成的
可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有说明:
意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。
plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。
我们可以采取的方式是将plugin降级至mysql_native_password,模仿官方文档中的示例采取图中操作。
③回到Navicat发现连接成功。
(二)连接虚拟机数据库
①先登录mysql进行授权,允许远程登录许可:
mysql>grant all privileges on *.* to root@"%" identified by "你的密码" with grant option;
(root为用户名,也可以用其他用户名。"%"代表的是任意host地址,说明远程登录也被许可了)
mysql>flush privileges;
②尝试直接连接
连接时如果发生如下报错:
这个错误是因为虚拟机的3306端口没有打开
可以这样验证:
$sudo -i
# netstat -an | grep 3306
发现有个LISTEN,说明只是监听状态,所以拒绝了访问
③解决方法:
$sudo -i
#vim /etc/mysql/my.cnf
找到其中的“bind-address = 127.0.0.1(或其他)”,注释掉,如果该文件中没有则尝试以下:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
vim /etc/mysql/conf.d/mysqld.cnf
最后,记得要重启mysql:
#service mysql restart
最好重启一下终端,甚至是虚拟机。最终发现连接成功