您的当前位置:首页正文

Mysql数据库简介

2022-03-06 来源:易榕旅网
Mysql数据库简介

什么是数据(Data)

描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是⽂字、图⽚,图像、声⾳、语⾔等,数据由多种表现形式,它们都可以经过数字化后存⼊计算机,在计算机中描述⼀个事物,就需要抽取这⼀事物的典型特征,组成⼀条记录,就相当于⽂件⾥的⼀⾏内容什么是数据库(DataBase,简称DB)

数据库即存放数据的仓库,但仓库是在计算机存储设备上,⽽且数据是按⼀定的格式存放的数据库是长期存放在计算机内、有组织、可共享的数据

数据库中的数据按⼀定的数据模型组织、描述和储存,具有较⼩的冗余度、较⾼的数据独⽴性和易扩展性,并可为各种 ⽤户共享什么是数据库管理系统(DataBase Management System 简称DBMS)

在了解了Data与DB的概念后,如何科学地组织和存储数据,如何⾼效获取和维护数据成了关键,这就⽤到了⼀个系统软件---数据库管理系统。例如MySQL、Oracle、SQLite、Access、MS SQL Server等。mysql主要⽤于⼤型门户,例如搜狗、新浪等,它主要的优势就是开放源代码。数据库管理软件分类

关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通⽤ (关系型数据库需要有表结构)⾮关系型:mongodb,redis,memcach (⾮关系型数据库是key-value存储的,没有表结构)

mysql 介绍

MySQL是⼀个关系型数据库管理系统,由瑞典MySQL AB 公司开发,⽬前属于 Oracle 旗下公司。MySQL 最流⾏的关系型数据库管理系统,在 WEB 应⽤⽅⾯MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应⽤软件之⼀并且mysql就是⼀个基于socket编写的C/S架构的软件。mysql 安装Linux系统⼆进制rpm包安装

yum -y install mysql-server mysql

源码安装 mysql

1.解压tar包cd /software

tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.212.添加⽤户与组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/data4.配置⽂件

cd /software/mysql-5.6.21/support-filescp my-default.cnf /etc/my.cnfcp mysql.server /etc/init.d/mysql

vim /etc/init.d/mysql #若mysql的安装⽬录是/usr/local/mysql,则可省略此步修改⽂件中的两个变更值

basedir=/software/mysql-5.6.21datadir=/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/profile6.添加⾃启动服务chkconfig --add mysqlchkconfig mysql on7.启动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; #刷新权限

View Code源码安装 mariadb

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的可执⾏路径加⼊系统PATHexport PATH=/usr/local/mysql/bin:$PATH source /etc/profile //使PATH⽣效。

6. 账号密码

mysqladmin -u root password 'yourpassword' //设定root账号及密码mysql -u root -p //使⽤root⽤户登录mysqluse mysql //切换⾄mysql数据库。

select user,host,password from user; //查看系统权限drop user ''@'localhost'; //删除不安全的账户drop user root@'::1';

drop user root@127.0.0.1;

select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。flush privileges; //刷新权限

7. ⼀些必要的初始配置1)修改字符集为UTF8vi /etc/my.cnf

在[client]下⾯添加 default-character-set = utf8在[mysqld]下⾯添加 character_set_server = utf82)增加错误⽇志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=18)修改完重启

service mysql restart

View Codewindows系统

1、下载:MySQL Community Server 5.7.16http://dev.mysql.com/downloads/mysql/

2、解压

如果想要让MySQL安装在指定⽬录,那么就将解压后的⽂件夹移动到指定⽬录,如:C:\\mysql-5.7.16-winx64

3、添加环境变量

【右键计算机】--》【属性】--》【⾼级系统设置】--》【⾼级】--》【环境变量】--》【在第⼆个内容框中找到 变量名为Path 的⼀⾏,双击】 --> 【将MySQL的bin⽬录路径追加到变值值中,⽤ ; 分割】

4、初始化

mysqld --initialize-insecure5、启动MySQL服务

mysqld # 启动MySQL服务

6、启动MySQL客户端并连接MySQL服务mysql -u root -p # 连接MySQL服务器

上⼀步解决了⼀些问题,但不够彻底,因为在执⾏【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做⼀下设置即可解决此问题:

注意:--install前,必须⽤mysql启动命令的绝对路径# 制作MySQL的Windows服务,在终端执⾏此命令:\"c:\\mysql-5.7.16-winx64\\bin\\mysqld\" --install

# 移除MySQL的Windows服务,在终端执⾏此命令:\"c:\\mysql-5.7.16-winx64\\bin\\mysqld\" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执⾏如下命令:# 启动MySQL服务net start mysql

# 关闭MySQL服务net stop mysql

View Code

mysql 基础设置

启动mysql

[root@ ~]# systemctl start mariadb #启动

[root@ ~]# systemctl enable mariadb #设置开机⾃启动

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.[root@ ~]# ps aux |grep mysqld |grep -v grep #查看进程,mysqld_safe为启动mysql的脚本⽂件,内部调⽤mysqld命令mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

mysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/v[root@ ~]# netstat -an |grep 3306 #查看端⼝

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

[root@ ~]# ll -d /var/lib/mysql #权限不对,启动不成功,注意user和groupdrwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql

安装完mysql 之后,登陆以后,不管运⾏任何命令,总是提⽰这个

mac mysql error You must reset your password using ALTER USER statement before executing this statement.解决⽅法:

step 1: SET PASSWORD = PASSWORD('your new password');

step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;step 3: flush privileges;

View Code登录、设置密码

初始状态下,管理员root,密码为空,默认只允许从本机登录localhost设置密码

[root@ ~]# mysqladmin -uroot password \"123\" 设置初始密码 由于原密码为空,因此-p可以不⽤

[root@ ~]# mysqladmin -uroot -p\"123\" password \"456\" 修改mysql密码,因为已经有密码了,所以必须输⼊原密码才能设置新密码命令格式:

[root@ ~]# mysql -h172.31.0.2 -uroot -p456[root@ ~]# mysql -uroot -p

[root@ ~]# mysql 以root⽤户登录本机,密码为空

View Code

mysql密码遗失

Linux系统下处理⽅法

#所有授权信息全部丢失

[root@ ~]# rm -rf /var/lib/mysql/mysql [root@ ~]# systemctl restart mariadb[root@ ~]# mysql

⽅法⼀

mysql主配置⽂件

[root@ ~]# vim /etc/my.cnf [mysqld]

skip-grant-table

[root@ ~]# systemctl restart mariadb[root@ ~]# mysql

MariaDB [(none)]> update mysql.user set password=password(\"123456\") where user=\"root\" and host=\"localhost\";MariaDB [(none)]> flush privileges;MariaDB [(none)]> \\q

[root@ ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启[root@ ~]# systemctl restart mariadb 以新密码登录

[root@ ~]# mysql -u root -p123456

⽅法⼆

Windows系统下(5.7版本mysql)处理⽅法

1 关闭mysql

2 在cmd中执⾏:mysqld --skip-grant-tables3 在cmd中执⾏:mysql4 执⾏如下sql:

update mysql.user set authentication_string=password('') where user = 'root';flush privileges;

5 tskill mysqld #或taskkill -f /PID 78326 重新启动mysql

⽅法⼀

1. 关闭mysql,可以⽤tskill mysqld将其杀死2. 在解压⽬录下,新建mysql配置⽂件my.ini3. 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,然后就可以以新密码登录了

⽅法⼆

windows下为mysql服务指定配置⽂件(强调:配置⽂件中的注释可以有中⽂,但是配置项中不能出现中⽂)

#在mysql的解压⽬录下,新建my.ini,然后配置

1. 在执⾏mysqld命令时,下列配置会⽣效,即mysql服务启动时⽣效[mysqld]

;skip-grant-tablesport=3306

character_set_server=utf8default-storage-engine=innodbinnodb_file_per_table=1

#解压的⽬录

basedir=E:\\mysql-5.7.19-winx64#data⽬录

datadir=E:\\my_data #在mysqld --initialize时,就会将初始数据存⼊此处指定的⽬录,在初始化之后,启动mysql时,就会去这个⽬录⾥找数据

2. 针对客户端命令的全局配置,当mysql客户端命令执⾏时,下列配置⽣效[client]port=3306

default-character-set=utf8user=root

password=123

3. 只针对mysql这个客户端的配置,2中的是全局配置,⽽此处的则是只针对mysql这个命令的局部配置[mysql];port=3306

;default-character-set=utf8user=egon

password=4573

如果没有[mysql],则⽤户在执⾏mysql命令时的配置以[client]为准

View Code

mysql统⼀字符编码

1. 修改配置⽂件[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=utf82. 重启服务

3. 查看修改结果:\\s

show variables like '%char%'

View Code

因篇幅问题不能全部显示,请点此查看更多更全内容