文档章节

mysql 初学

胡子叭槎
 胡子叭槎
发布于 2016/11/02 19:46
字数 1369
阅读 41
收藏 1
点赞 0
评论 0

1    本地安装mysql

1.1 本地安装MySQL

    yum install mysql.x86_64 mysql-server.x86_64

1.2    启动mysql

    [root@wzlvm ~]# /etc/init.d/mysqld start

1.3    创建数据库

   1. 3.1 进入MySQL

[root@wzlvm ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

    1.3.2  创建数据库

        

mysql> show databases; # 查看默认有哪些数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

mysql> create database base1;    # 创建数据库
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| base1              |    #=======》 刚刚创建的数据库
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

# 创建用户
insert into mysql.user(Host,User,Password)values('localhost','user1','123456');

# 授权 数据库base1 里面所有的表的所有权限都授权给用户user1从任意位置登录访问操作
grant all on base1.* to user1@'%';

# 上面的方法有点情况不能正常登陆,建议采用以下代码一次性创建用户和授权
grant all on base1.* to user3@'%' identified by '123456';

 

   1. 3.3 建表

        先进入建好的数据库

mysql> use base1;
Database changed

        建表

mysql> create table table1 (id int,remark varchar(200));
Query OK, 0 rows affected (0.03 sec)

    插入数据

mysql> insert into table1(id,remark)values(1,'test1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from table1;
+------+--------+
| id   | remark |
+------+--------+
|    1 | test1  |
+------+--------+
1 row in set (0.00 sec)

注意:有时候数据库表用户都建好列,但是就是链接不上,例如:

>>> db = pymysql.connect(host='127.0.0.1',user='wangzilong',password='123456',db='base1')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    db = pymysql.connect(host='127.0.0.1',user='wangzilong',password='123456',db='base1')
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/__init__.py", line 90, in Connect
    return Connection(*args, **kwargs)
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/connections.py", line 688, in __init__
    self.connect()
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/connections.py", line 906, in connect
    self._request_authentication()
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/connections.py", line 1114, in _request_authentication
    auth_packet = self._read_packet()
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/connections.py", line 981, in _read_packet
    packet.check_error()
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/connections.py", line 393, in check_error
    err.raise_mysql_exception(self._data)
  File "/data/program/python2.7/lib/python2.7/site-packages/pymysql/err.py", line 107, in raise_mysql_exception
    raise errorclass(errno, errval)
OperationalError: (1045, u"Access denied for user 'wangzilong'@'localhost' (using password: YES)")

可能是mysql.user 表中存在用户名为空定用户,删除空用户重启mysql因该就好了

注意:由于本地安装mysql一般版本都比较低很多功能都无法使用,所以不可取。下面介绍企业经常使用的二进制安装

2    二进制安装mysql

    2.1 添加20G的磁盘

    添加磁盘通过lvm添加,有利于以后磁盘空间扩展

    添加详细步骤就不多介绍,之前已经有写过。

    2.2 给mysql添加用户和组都是mysql

    groupadd mysql

    useradd -r -g mysql mysql

# mysql用户
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

# mysql 组
mysql:x:27:

    2.3 挂载点路径下创建指定的目录,并把二进制安装包解压后的文件全部copy到product文件夹里面

[root@wzlvm mysql]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              18G  3.0G   14G  18% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             1.9G   62M  1.8G   4% /boot
/dev/sr0              3.7G  3.7G     0 100% /data/local_cdrom
/dev/mapper/vgmysql-mysql
                      9.8G  1.2G  8.1G  13% /data/program/mysql  # 刚刚新增的磁盘并创建了lvm 挂载在这个路径下

载挂载点下面创建指定的文件夹:

mkdir -p /data/program/mysql/product
mkdir -p /data/program/mysql/data
mkdir -p /data/program/mysql/log
mkdir -p /data/program/mysql/backup
mkdir -p /data/program/mysql/tmp
mkdir -p /data/program/mysql/scripts

[root@wzlvm mysql]# ll
total 24
drwxr-xr-x  2 mysql mysql 4096 Nov  7 22:24 backup
drwxr-xr-x  5 mysql mysql 4096 Nov  7 23:03 data
drwxr-xr-x  2 mysql mysql 4096 Nov  7 22:55 log
drwxr-xr-x 13 mysql mysql 4096 Nov  7 22:47 product
drwxr-xr-x  2 mysql mysql 4096 Nov  7 22:25 scripts
drwxr-xr-x  2 mysql mysql 4096 Nov  7 22:55 tmp

解压二进制安装包:

tar -zxvf mysql-5.6.20-linux-glibc2.5-x86_64.tar.gz

进入解压之后的目录下,全部移动到上面的product文件夹里面:

mv * /data/program/mysql/product/

给挂载点设置用户和组:

chown -R mysql:mysql /data/program/mysql

切换到mysql用户下:

su - mysql

进入目录:cd /data/program/mysql/product/scripts

设置mysql安装参数:

./mysql_install_db --user=mysql --datadir=/data/program/mysql/data --defaults-file=/data/program/mysql/product/my.cnf --basedir=/data/program/mysql/product/

注意:上面的路径要和我们手动创建的product路径一致

切换到root用户下:cp /data/program/mysql/product/support-files/mysql.server /etc/init.d/mysqld

配置mysql的启动文件:

vi /etc/init.d/mysqld
basedir=/data/program/mysql/product
datadir=/data/program/mysql/data

vim /data/program/mysql/product/my.cnf
[client]
port            = 3369
socket = /data/program/mysql/tmp/mysql.sock
default-character-set=utf8
[mysqld]
port = 3369
server_id = 5
basedir = /data/program/mysql/product
datadir = /data/program/mysql/data
socket = /data/program/mysql/tmp/mysql.sock
pid_file=/data/program/mysql/tmp/mysql.pid
log_error = /data/program/mysql/log/error.log
innodb_buffer_pool_size = 8192M
innodb_file_per_table=1
tmp_table_size=64M
max_heap_table_size=64M
max_connections=600
character_set_server=utf8
autocommit=on
transaction_isolation=read-committed
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-name-resolve=on
explicit_defaults_for_timestamp=on
lower_case_table_names=1
read_only=off
log_bin = /data/program/mysql/log/binlog
max_binlog_size=256m
binlog_format=row
expire_logs_days=30
innodb_log_file_size = 256m
innodb_log_files_in_group = 3
log_slave_updates=on
innodb_flush_log_at_trx_commit=0
log_bin_trust_function_creators=1
slow_query_log_file = /data/program/mysql/log/slow.log
slow_query_log=on
long_query_time=1
log_queries_not_using_indexes=on
/data/program/mysql/product/bin/mysqld_safe --defaults-file=/data/program/mysql/product/my.cnf &
mysql -uroot -p --socket=/data/program/mysql/tmp/mysql.sock
set password=password('123456');
flush privileges;

vi /etc/profile 加入以下信息
##database
export MYSQL_HOME=/data/program/mysql/product
export PATH=$PATH:/data/program/mysql/product/bin

注意:/etc/my.cnf 文件也要进行配置:


  1 [mysqld]
  2 datadir=/data/program/mysql/data
  3 socket=/data/program/mysql/tmp/mysql.sock
  4 user=mysql
  5 # Disabling symbolic-links is recommended to prevent assorted security risks
  6 symbolic-links=0
  7 
  8 [mysqld_safe]
  9 log-error=/data/program/mysql/log/error.log
 10 pid-file=/data/program/mysql/tmp/mysql.pid

启动mysql:

/etc/init.d/mysqld start

登录mysql:

mysqladmin -uroot password '123456' 修改密码

mysql -uroot -p 登录

查看数据库:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

创建数据库,创建表,都在上面有说明,这里就不多说明了。

 

 

© 著作权归作者所有

共有 人打赏支持
胡子叭槎
粉丝 21
博文 126
码字总数 132913
作品 0
成都
数据库管理员
Django的Apache部署

本人初学Django,在使用WSGI+Apache部署Django时,遇到不能够进行MySQL数据库操作的问题;网上找了很多答案,大多是说不能使用本机的MySQL数据库;我就一台电脑,不能确定是否可以解决此问题...

静水大智 ⋅ 2015/11/12 ⋅ 7

在sae上部署php代码medoo报错

初学php+mysql,想做个网站放在sae上,奈何medoo报错。求助,这个该怎么改(sql语句都是用的medoo封装的方法) Fatal error: Uncaught exception 'Exception' with message 'SQLSTATE[HY000] [...

brianT ⋅ 2014/03/25 ⋅ 3

mysql管理工具建立视图

用sqlserver建立视图时可以直接可视化操作,代码也可以自动生成好像,mysql的管理工具中有没有这个功能的,navicat生成的代码不全,条件还得自己写, 我初学,有些地方不了解,请指教...

ldl123292 ⋅ 2012/07/04 ⋅ 1

oracle 该在哪个平台学习?

小弟初学oracle数据库,不知道该把oracle安装在哪个平台学习好?平时主要是关注在linux下学习mysql而已, 由于对收费软件的市场不够了解,不知道现在的在unix 、linux 、windows的平台上,哪...

mickey_52 ⋅ 2013/03/15 ⋅ 13

请问在class内连接MySQL的方法

详细说下情况: 显示页index.php中require('display.php') display.php里写了一个class display,display包含几个函数,包括header(),content(),footer()等等从MySQL获取数据。 然后index里$...

mronground ⋅ 2013/03/28 ⋅ 6

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

使用hibernate的时候, 报出这个错误Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]。在网上查询了一下发现很多初学hibernate的人有些会遇倒这个...

---dgw博客 ⋅ 06/10 ⋅ 0

开源博客系统--SpringBlog

SpringBlog 是开源博客系统,主要用的到的技术有: Spring MVC + Spring Data JPA Hibernate + MySQL Spring Data Redis 用于缓存文章 Jade 作为视图模板,我极度不喜欢写 HTML 标签 Bootst...

strwei ⋅ 2015/10/10 ⋅ 2

C++调用含输出参数的存储过程

初学Mysql,创建了一个表和一个输出参数和返回结果集的存储过程。 表: create table student ( id varchar(32) not null, name varchar(20) not null, age tinyint unsigned not null, home...

independently ⋅ 2014/02/23 ⋅ 1

Java 学习框架--Mutouren

简介: Mutouren是一个java学习框架,内含一些通用的系统模块, 这些模块由流行的hibernate、mybatis、struts、spring、spring mvc、memcache、redis等技术分别实现, 可以观察、对比这些技术...

sjz木头人 ⋅ 2015/04/14 ⋅ 0

十力内容管理系统 - KingblocCMS1.3

十力内容管理系统简要介绍 发布时间:2013年10月1日 十力内容管理系统正式上线测试;操作简单,易用,界面友好,逻辑清晰。 系统是基于页面模版生成静态页面; 严格按照MVC模式设计,java语言...

从无到有 ⋅ 2013/06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 10分钟前 ⋅ 0

如何使用serverchan微信推送告警

之前实现推送告警信息到微信的方法有如下几种: 1、通过企业公众号实现----收费: 2、通过QQ邮箱,在微信平台上开启收到邮件进行提醒; 3、第三方告警平台API,一般也是收费的; 不过最近看文...

问题终结者 ⋅ 36分钟前 ⋅ 0

TCP的RPC

RPC就是远程方法调用(Remote Process Call ),包含了客户端和服务端,涉及了对象的序列化传输。 1.服务端启动,注册远程调用的类2.客户端发送请求信息包含类、方法、参数的一些信息、序列化传...

Cobbage ⋅ 57分钟前 ⋅ 0

IOS-UI UI初步代码布局添加事件

ISO开发界面,UI是必须学习的一部分,其实很早之前想学来了,一直没有沉下心来学习。看到IOS的代码风格和布局就别扭的不行,跟java代码和android布局比较显得不是那么方便,所以一直到现在。...

京一 ⋅ 今天 ⋅ 0

浅谈OpenDaylight的二次开发

OpenDaylight作为一款开源SDN网络控制器,依托于强大的社区支持以及功能特性,成为了目前主流的SDN网络控制器开发平台。在比较稳定的OpenDaylight Helium版本中,已经为开发者提供了大量的网...

wangxuwei ⋅ 今天 ⋅ 0

API 开发中可选择传递 token 接口遇到的一个坑

在做 API 开发时,不可避免会涉及到登录验证,我使用的是jwt-auth 在登录中会经常遇到一个token过期的问题,在config/jwt.php默认设置中,这个过期时间是一个小时,不过为了安全也可以设置更...

等月人 ⋅ 今天 ⋅ 0

Java NIO之文件处理

程序要操作本地操作系统的一个文件,可以分为以下三个部分: 对文件位置的操作 对文件的操作 对文件内容的操作 其中,对文件内容的操作在 Java NIO之Channel 中已经有了介绍,通过FileChann...

士别三日 ⋅ 今天 ⋅ 0

Maven的pom.xml配置文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.......

小海bug ⋅ 今天 ⋅ 0

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 今天 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部