JavaEE进阶知识学习-----Mysql数据库--Linux安装

一、mysql的架构介绍

1.Mysql简介

Mysql是一个关系型数据库管理系统。

高级Mysql部分:mysql内核,sql优化,各种参数常量设定,主从复制,软硬件升级,容灾备份,sql编程。

2.lLinux安装Mysq

将MySQL-client-5.5.48-1.linux2.6.i386.rpm和MySQL-server-5.5.48-1.linux2.6.i386.rpm复制到opt目录下。

检查Linux是否安装过Mysql

[root@hadoop02 opt]# rpm -qa|grep -i mysql

一般情况下,centos会自带一个libs,使用rpm -e 软件名,进行卸载。

准备软件

MySQL-client-5.6.39-1.el6.x86_64.rpm
MySQL-server-5.6.39-1.el6.x86_64.rpm
MySQL-shared-5.6.39-1.el6.x86_64.rpm

先安装MySQL-shared-5.6.39-1.el6.x86_64.rpm

[root@hadoop02 opt]# rpm -ivh MySQL-shared-5.6.39-1.el6.x86_64.rpm

安装服务端

[root@hadoop02 opt]# rpm -ivh MySQL-server-5.6.39-1.el6.x86_64.rpm

安装客户端

[root@hadoop02 opt]# rpm -ivh MySQL-client-5.6.39-1.el6.x86_64.rpm

检查是否安装成功

[root@hadoop02 opt]# cat /etc/passwd|grep mysql
mysql:x:496:493:MySQL server:/var/lib/mysql:/bin/bash

[root@hadoop02 opt]# mysqladmin --version
mysqladmin  Ver 8.42 Distrib 5.5.48, for Linux on i686

检查mysql服务是否启动

[root@hadoop02 opt]# ps -ef | grep mysql
root       3512   3242  0 22:17 pts/0    00:00:00 grep mysql

启动Mysql服务

service mysql start

启动mysql后台服务后,查看如下

[root@hadoop04 opt]# ps -ef|grep mysql
root       4129      1  0 05:16 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/hadoop04.pid
mysql      4225   4129  0 05:16 pts/1    00:00:16 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=hadoop04.err --pid-file=/var/lib/mysql/hadoop04.pid
root       4448      1  0 07:30 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/hadoop04.pid
mysql      4547   4448 10 07:30 pts/1    00:00:02 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=hadoop04.err --pid-file=/var/lib/mysql/hadoop04.pid
root       4559   3920  3 07:31 pts/1    00:00:00 grep mysql

关闭Mysql服务

[root@hadoop04 opt]# service mysql stop

问题1-不能使用密码登录

问题如下:第一次登录Mysql,无论是否输入密码都会出现如下错误。

[root@hadoop04 opt]# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
或者
[root@hadoop04 opt]# mysql

解决办法(给root设置密码)

1、关闭mysql服务

[root@hadoop04 opt]# service mysql stop

2、使用如下命令,跳过密码

[root@hadoop04 opt]#  mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3、按Ctrl+C结束上述命令,输入一下命令

[root@hadoop04 opt]# mysql -u root mysql

4、删除数据库mysql表user中多余的host及user

4.1、先查询user表中的好似突然和user,注意sql语句的末尾的;。

mysql> select host,user,password from user;

4.2、根据查出的信息,只保留localhost,其他的host删除

mysql> delete from user where host <> 'localhost';

5、设置新密码

mysql> update user set password =password('123456');

6、让修改生效

mysql> flush privileges;

7、退出,并重新登录mysql

mysql> quit;
[root@hadoop04 opt]# mysql -uroot -p123456

3.mysql开机自启动

[root@hadoop04 opt]# chkconfig mysql on

查看是否开机自启动,看到[*]mysql,表示mysql会开机启动

[root@hadoop04 opt]# ntsysv

4.mysql数据库存放路径

使用如下命令查看,安装的数据库,安装在/var/lib/mysql目录下。

[root@hadoop04 桌面]# cd /var/lib/mysql
[root@hadoop04 mysql]# ls -l
总用量 110772
-rw-rw----. 1 mysql mysql       56 4月   1 05:16 auto.cnf
-rw-rw----. 1 mysql mysql   149556 4月   1 15:45 hadoop04.err
-rw-rw----. 1 mysql mysql        5 4月   1 15:45 hadoop04.pid
-rw-rw----. 1 mysql mysql 12582912 4月   1 15:45 ibdata1
-rw-rw----. 1 mysql mysql 50331648 4月   1 15:45 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 4月   1 05:14 ib_logfile1
drwx--x--x. 2 mysql mysql     4096 4月   1 05:14 mysql
srwxrwxrwx. 1 mysql mysql        0 4月   1 15:45 mysql.sock
drwx------. 2 mysql mysql     4096 4月   1 05:14 performance_schema
-rw-r--r--. 1 root  root       125 4月   1 05:14 RPM_UPGRADE_HISTORY
-rw-r--r--. 1 mysql mysql      125 4月   1 05:14 RPM_UPGRADE_MARKER-LAST
drwxr-xr-x. 2 mysql mysql     4096 4月   1 05:14 test
[root@hadoop04 mysql]# 

5.修改mysql的配置文件

进入mysql配置文件目录,查看配置文件

[root@hadoop04 mysql]# cd /usr/share/mysql
[root@hadoop04 mysql]# ls -l

拷贝配置文件my-default.cnf

[root@hadoop04 mysql]# cp my-default.cnf /etc/my.cnf

停止服务,开始服务,进入Mysql

[root@hadoop04 mysql]#  mysql stop
[root@hadoop04 mysql]#  mysql start
[root@hadoop04 mysql]#  mysql -u root -p

问题1-show databases时报错

mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

解决办法

mysql> set password = password('123456');
Query OK, 0 rows affected (0.08 sec)

mysql> show databases;

6.Linux下Mysql基本使用

创建数据库

mysql> create database db01;

使用db01数据库

mysql> use db01;

查看表结构

mysql> show tables;

创建表

mysql> create table user(id int not null,name varchar(20));

插入数据

mysql> insert into user values(1,'z3');

7.修改mysql的字符编码

查看mysql的字符编码

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.07 sec)

默认的客户端和服务端都用了latin1,所以会出现出入入中文失败或者乱码。

修改我们之前复制到etc目录下的my.cnf配置文件

[root@hadoop04 mysql]# cd /etc/

打开配置文件

vim my.cnf

输入i进入插入模式,修改如下

client]
default-character-set=utf8
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

#default-character-set=utf8
character-set-server=utf8
character-set-client=utf8
collation-server=utf8_general_ci
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
[mysql]
no-auto-rehash
default-character-set=utf8

注意,注释以下

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

按ESC,:wq保存退出。

8.MySql配置文件

MySql的主要配置文件有如下:

  • 二进制日志文件log-bin
  • 错误日志log-error
  • 查询日志log
  • 数据文件:frm文件,存放表结构;myd文件,存放表数据;myi文件,存放表索引

9.Mysql的逻辑架构

连接层

最上层是一些客户端和连接服务,包含了本地sock通信和大多数基于客户端、服务端工具实现的类似tcp/ip的通信,主要完成了一些类似连接处理,授权认证等安全方案,在该层引入了线程池的概念

服务层

第二层的架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化以及内部函数的执行,所有跨存储引擎的功能也在这一层实现,如过程,函数等,在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后完成相应的执行操作,如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升性能。

引擎层

存储引擎层,存储引擎真正的负责了MySql中数据的存储和读取,服务器通过API与存储引擎进行通信,不同的存储引擎具有不同的功能,可以根据不同的功能需求选取不同得分引擎,例如MyISAM和InnoDB

存储层

数据存储层,主要将数据存储在运行设备的文件系统上,并完成与存储引擎的交互。

你可能感兴趣的:(JavaEE进阶知识学习-----Mysql数据库--Linux安装)