MYSQL
Posted 脑子是个好东西,出门得带上 __rongge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL相关的知识,希望对你有一定的参考价值。
mysql介绍
是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一!是基于socket编写的一款C/S架构的软件。
1、常见的数据库:
关系型数据库(需要有表结构)
- MySQL 是一款免费、开源、支持大中型企业的数据库,运用广泛,后来被Sun公司收购,最后由Oracle公司将Sun公司合并,mysql的创始人又开发了一款MariaDB,完全兼容mysql,使用起来跟mysql一模一样!!
- Oracle 是一款闭源且收费的分布式数据库,其功能极其强大!
- SQLsever 是微软旗下的,仅支持Windows系统,局限性强
- DB2 是IBM开发的数据库软件,闭源、收费,与IBM的机器绑定销售
非关系型(key-value形式储存,没有表结构)
- MongoDB
- Redis
- HBASE
- memcache
2、MySQL安装
1.解压tar包 cd /software tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 2.添加用户与组 groupadd mysql useradd -r -g mysql mysql chown -R mysql:mysql mysql-5.6.21 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 4.配置文件 cd /software/mysql-5.6.21/support-files cp my-default.cnf /etc/my.cnf cp 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 /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用户远程访问 mysql>FLUSH PRIVILEGES; #刷新权限
1. 解压 tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录 2. 权限 groupadd mysql //增加 mysql 属组 useradd -g mysql mysql //增加 mysql 用户 并归于mysql 属组 chown mysql:mysql -Rf /usr/local/mysql // 设置 mysql 目录的用户及用户组归属。 chmod +x -Rf /usr/local/mysql //赐予可执行权限 3. 拷贝配置文件 cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //复制默认mysql配置 文件到/etc目录 4. 初始化 /usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化数据库 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //复制mysql服务程序 到系统目录 chkconfig mysql on //添加mysql 至系统服务并设置为开机启动 service mysql start //启动mysql 5. 环境变量配置 vim /etc/profile //编辑profile,将mysql的可执行路径加入系统PATH export PATH=/usr/local/mysql/bin:$PATH source /etc/profile //使PATH生效。 6. 账号密码 mysqladmin -u root password ‘yourpassword‘ //设定root账号及密码 mysql -u root -p //使用root用户登录mysql use mysql //切换至mysql数据库。 select user,host,password from user; //查看系统权限 drop user ‘‘@‘localhost‘; //删除不安全的账户 drop user [email protected]‘::1‘; drop user [email protected]127.0.0.1; select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。 flush privileges; //刷新权限 7. 一些必要的初始配置 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
3、windows版本安装及初始化等操作
# 1、下载MySQL: http://dev.mysql.com/downloads/mysql/ # 2、解压 # 将下载的压缩包解压到想要安装的目标盘下的文件夹 # 3、添加环境变量 # 4、初始化 mysql --initialize-insecure # 5、启动mysql服务 mysqld 或 (net start mysql) # 6、启动mysql客户端连接至mysql服务 mysql -uroot -p # 7、关闭mysql服务 net stop mysql 或 taskkill /f /pid PID号 或 tskill mysqld # 8、重启mysql客户端 mysql -uroot -p # 初始密码为空,直接回车进入 # 9、修改密码 mysql> mysqladmin -uroot password "自己的密码" # 原密码为空时可以不用-p mysql> mysqladmin -uroot -p"旧密码" password "新密码"
4、忘记密码解决办法
Windows平台中的密码破解方式(mysql5.7版本)
#1 关闭mysql服务 #2 在cmd中执行(跳过授权表登录操作):mysqld --skip-grant-tables #3 在新的cmd中执行:mysql #4 执行如下sql命令: update mysql.user set authentication_string=password(‘新密码‘) where user = ‘root‘; # 刷新权限 flush privileges; #5 tskill mysqld #或taskkill /f /pid pid号 #6 重新启动mysql
#1. 关闭mysql,可以用tskill mysqld将其杀死 #2. 在解压目录下,新建mysql配置文件my.ini #3. my.ini内容,指定 [mysqld] skip-grant-tables #4.启动mysqld #5.在cmd里直接输入mysql登录,然后操作 update mysql.user set authentication_string=password(‘新密码‘) where user=‘root and host=‘localhost‘; # 刷新权限 flush privileges; #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
Linux平台中的密码破解方式
[[email protected] ~]# vim /etc/my.cnf #mysql主配置文件 [mysqld] skip-grant-table [[email protected] ~]# systemctl restart mariadb [[email protected] ~]# mysql MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost"; MariaDB [(none)]> flush privileges; MariaDB [(none)]> q [[email protected] ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启 [[email protected] ~]# systemctl restart mariadb [[email protected] ~]# mysql -u root -p123 #以新密码登录
5、统一字符编码
#1. 修改配置文件my.ini [mysqld] default-character-set=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 #mysql5.5以上: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 #2. 重启mysql服务 #3. 查看修改结果: mysql>s mysql>show variables like ‘%char%‘
6、为mysql服务指定配置文件
#在mysql的解压目录下,找到my.ini,然后配置 #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效 [mysqld] ;skip-grant-tables port=3306 character_set_server=utf8 default-storage-engine=innodb innodb_file_per_table=1 #解压的目录 basedir=D:mysql-5.7.23-winx64 #data目录 datadir=D:my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据 #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效 [client] port=3306 default-character-set=utf8 user=root password=123 #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置 [mysql] ;port=3306 ;default-character-set=utf8 user=jack password=1234 #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
sql语句
# 1. 操作文件夹 增: create database db1 charset utf8; 查: show databases; show create database db1; 改: alter database db1 charset utf8; 删: drop database db1; # 2. 操作文件 先切换到文件夹下:use db1 增: create table t1(id int,name char,...); 查: show tables; show create table db1; desc db1; 改: alter table t1 modify name char(1); alter table t1 change old_name new_name char(2); alter table t1 add name int; 改字符编码: alter table t1 default character set gbk 改文件名: rename table t1 to t2 删: drop table t1; # 3. 操作文件中的内容/记录 增: insert into t1 values(1,‘egon1‘),(2,‘egon2‘),(3,‘egon3‘); 查: select * from t1; select id name from t1; 改: update t1 set name = ‘sb‘ where id = 2; 删: delete from t1 where id = 1; 清空表: delete from t1; # 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。 truncate table t1; 数据量大,删除速度比上一条快,重建表,清空所有数据 auto_increment 表示:自增 primary key 表示:约束(不能重复且不能为空);加速查找
以上是关于MYSQL的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段
使用 json rereiver php mysql 在片段中填充列表视图
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段