1.MySQL的下载安装、简单应用及目录介绍
1.下载安装
windows10的:https://www.cnblogs.com/clschao/articles/9916971.html
linux下的mysql安装和使用(参考博客):
1. https://www.cnblogs.com/clschao/articles/6736840.html
2. https://blog.csdn.net/qq_17776287/article/details/53536761
mac 安装mysql5.6 :https://blog.csdn.net/mike694439716/article/details/48218239?utm_source=blogxgwz0
mac 安装tar.gz版MySQL5.6:https://blog.csdn.net/zmx729618/article/details/72769840
如果Mac本安装完mysql之后,登陆以后,不管运行什么指令,总是提示这个:mac mysql error You must reset your password using ALTER USER statement before executing this statement. 你需要做的就是修改密码就行了,默认安装完成之后,mysql应该是安装在了/usr/local/mysql这个目录下,里面的目录结构和windows的是一样的。
总结win10:
#1、下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2、解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:mysql-5.7.16-winx64 #3、添加环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】 #4、初始化 mysqld --initialize-insecure #5、启动MySQL服务 mysqld # 启动MySQL服务 #6、启动MySQL客户端并连接MySQL服务 mysql -u root -p # 连接MySQL服务器 #7、将mysql添加系统服务 注意:--install前,必须用mysql启动命令的绝对路径 # 制作MySQL的Windows服务,在终端执行此命令: "c:mysql-5.7.16-winx64inmysqld" --install # 移除MySQL的Windows服务,在终端执行此命令: "c:mysql-5.7.16-winx64inmysqld" --remove 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令: # 启动MySQL服务 net start mysql # 关闭MySQL服务 net stop mysql
总结Linux:
#1、下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2、解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:mysql-5.7.16-winx64 #3、添加环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】 #4、初始化 mysqld --initialize-insecure #5、启动MySQL服务 mysqld # 启动MySQL服务 #6、启动MySQL客户端并连接MySQL服务 mysql -u root -p # 连接MySQL服务器 #7、将mysql添加系统服务 注意:--install前,必须用mysql启动命令的绝对路径 # 制作MySQL的Windows服务,在终端执行此命令: "c:mysql-5.7.16-winx64inmysqld" --install # 移除MySQL的Windows服务,在终端执行此命令: "c:mysql-5.7.16-winx64inmysqld" --remove 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令: # 启动MySQL服务 net start mysql # 关闭MySQL服务 net stop mysql 复制代码 复制代码 1.解压tar包 cd /software #cd到一个自己创建的文件夹中 tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz #解压下载下来的mysql文件,如果没在这个文件夹中,记得把文件移动到这个文件夹中,通过mv指令 mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 #通过mv指令给这个解压出来的文件改了个名字 2.添加用户与组 groupadd mysql #添加用户组 useradd -r -g mysql mysql #创建mysql用户,并添加到mysql用户组 chown -R mysql:mysql mysql-5.6.21 #这是mysql用户和mysql用户组的归属 chmod +x -Rf /usr/local/mysql #赐予可执行权限 3.安装数据库 su mysql cd mysql-5.6.21/scripts ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data #使用mysql用户来将我们下载并解压的那个mysql文件,安装到/software/mysql-5.6.21/data这个目录里面 4.配置文件 cd /software/mysql-5.6.21/support-files #配置文件在这个目录下 cp my-default.cnf /etc/my.cnf #copy一份my-default.cnf文件到etc目录下,并起名为my.cnf文件 cp mysql.server /etc/init.d/mysql #copy一份mysql.server文件,到etc的init.d的mysql文件夹中,启动加载的初始配置文件会有一部分在这个目录里面读取 vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步 修改文件中的两个变更值 basedir=/software/mysql-5.6.21 #基础目录 datadir=/software/mysql-5.6.21/data #数据目录 5.配置环境变量 vim /etc/profile #环境变量的配置文件 ,添加下面两行 export MYSQL_HOME="/software/mysql-5.6.21" export PATH="$PATH:$MYSQL_HOME/bin" #使配置生效,通过source指令 source /etc/profile 6.添加自启动服务 chkconfig --add mysql chkconfig mysql on 7.启动mysql service mysql start 8.登录mysql及改密码与配置远程访问 mysqladmin -u root password 'your_password' #修改root用户密码 mysql -u root -p #登录mysql,需要输入密码 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问(默认远程连接是不能使用root用户来连接的) mysql>FLUSH PRIVILEGES; #刷新权限 9. 一些必要的初始配置(除了下面这些,将来玩mysql的时候还有很多很多的配置) 1)修改字符集为UTF8 vi /etc/my.cnf 在[client]下面添加 default-character-set = utf8 在[mysqld]下面添加 character_set_server = utf8 2)增加错误日志 vi /etc/my.cnf 在[mysqld]下面添加: log-error = /usr/local/mysql/log/error.log general-log-file = /usr/local/mysql/log/mysql.log 3) 设置为不区分大小写,linux下默认会区分大小写。 vi /etc/my.cnf 在[mysqld]下面添加: lower_case_table_name=1 修改完重启:#service mysql restart
2.mysql的简单使用演示
1.开启服务端,mysqld net start mysql
2.使用mysql自带的客户端进行连接,cmd下输入mysql -u root -p,然后回车,会提示你输入密码,此时初始的root用户还没有密码,所以还是直接回车就可以连接上了
3.show databases;先不讲里面的内容,说一下这是几个库,每个项目可以有自己单独的一个库,里面放这个项目的所有数据表
4.创建一个库:create database CRM;然后show databases;查看一下就有了这个crm库,不分大小写,统一会变成小写,对照着我们mysql安装目录下的data文件夹里面的内容看一下,库就是对应的文件夹。
5.我们目前在所有数据库之上,想在我们自己项目的库里面操作数据,就需要切换到我们自己这个crm项目的库里面进行数据的操作,切换数据库使用use + 库名,例如:use crm;就提示你切换成功了。
6.我们说过,库里面维护的数据就像一张一张的数据表,类似excel,对不对,那我们创建一张表看一下,命令:
create table student(
id int,
name char(10),
age int
);
7.再执行show tables;就可以看到有了一个student表
8.查看一下这个表里的数据select * from student;发现什么数据也没有
9.插入几条数据,写几条数据:insert into student values(1,'d',18),(2,'x',11),(3,'d',10),(4,'k',9);然后回车,就执行了这条指令,然后我们再查看一下这个表里面有没有数据了,执行上一条指令,select * from student;发现里面就有数据了:
注意:数据库中,有几个初识的库,关于数据库中的这4个初始的库的详细介绍 可参考: https://www.cnblogs.com/clschao/articles/9928223.html
3. root用户密码设置及忘记密码的解决方法
root用户密码不能为空,需要设置一个密码,看下面设置密码的三种方法:
方法1: 用SET PASSWORD命令
首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin (因为我们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin来修改密码)
关于mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin的很多功能通过使用MySQL自带的mysql客户端可以搞定,但是有时候使用mysqladmin操作会比较简单。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
只用mysqladmin的时候,会出现一个warning警告信息:Warning: Using a password on the command line interface can be insecure.,这个没关系,是提示你,你直接在cmd下使用明文设置密码的时候,是不安全的,因为别人可以通过翻看你输入指令的历史记录来查看到你设置的密码,所以提示你一下
方法3:用UPDATE直接编辑那个自动的mysql库中的user表
首先登录MySQL,连接上mysql服务端。
1.mysql> use mysql; 切换到mysql这个库,这个库是所有的用户表和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库里面的表。
2.mysql> update user set password=password('123') where user='root' and host='localhost';
其中password=password('123') 前面的password是变量,后面的password是mysql提供的给密码加密用的,我们最好不要明文的存密码.其中user是一个表,存着所有的mysql用户的信息。
3.mysql> flush privileges; 刷新权限,让其生效,否则不生效,修改不成功。
在忘记root密码的时候,可以这样(注意:root密码最好不要忘记,找地方记录下来,不然如果是工作中你们使用的数据库(不管是测试的还是线上的,都是比较麻烦的事情,数据库轻易不会让你重启的,不过作为一个开发来讲,你应该是无法用root用户的~~~))
以windows为例:
1. 关闭正在运行的MySQL服务,net stop mysql(这个mysql是你添加的mysqld到系统服务时的服务名)。 2. 打开DOS窗口,转到mysqlin目录。 3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证,因为之所以mysql启动之后,客户端连接的时候需要登陆认证,输入密码什么的,是因为mysql服务端启动的时候,加载了自己内部的一些权限相关信息的授权表、权限认证表什么的,这样就要求客户端必须有认证,如果启动的时没有加载这些表和设置,那么我们客户端再进行登陆的时候,就不需要认证了,那么就可以登陆上了,登陆之后,我们到mysql这个存有所有用户信息的表中去修改root用户或者别的用户的密码了,但是这样搞需要关闭服务端,在实际工作中想关闭mysql服务?? 注意一个问题,如果我们直接使用的上面这个指令,也即是mysqld --skip-grant-tables,也就是直接通过mysqld启动的mysql服务的话,我们就不能通过net stop mysql的方式来关闭mysql服务了。但是可以通过别的方式来关闭,我在安装mysql的那篇博客里面写到了,杀进程的方式,知道你肯定忘记了,再给你写一下(win10):tasklist |findstr mysqld找到这个mysqld服务的端口号,然后taskkill /F /PID 端口号来杀死这个mysql服务的进行,以后就可以使用net start/stop mysql的方式来启动和关闭了。 4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。 5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 6. 连接权限数据库: use mysql; 。 6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。 7. 刷新权限(必须步骤):flush privileges; 。凡是涉及到密码修改或者后面我们会学到的权限修改,修改完之后全部要再执行一下这一句。 8. 退出 quit。 9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。