day-40mysql

epoll

#coding:utf-8
#客户端
#创建客户端socket对象
import socket
clientsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#服务端IP地址和端口号元组
server_address = ('127.0.0.1',1688)
#客户端连接指定的IP地址和端口号
clientsocket.connect(server_address)

while True:
    #输入数据
    data = raw_input('please input:')
    if data == "q":
        break
    if not data:
      continue
    #客户端发送数据
    clientsocket.send(data.encode("utf-8"))
    #客户端接收数据
    server_data = clientsocket.recv(1024)
    print ('客户端收到的数据:',server_data)
#关闭客户端socket
clientsocket.close()
服务器
# coding:utf-8
import socket, select

server = socket.socket()
server.bind(("127.0.0.1", 1688))
server.listen(5)

msgs = []


fd_socket = {server.fileno(): server}
epoll = select.epoll()
# 注册服务器的 写就绪
epoll.register(server.fileno(), select.EPOLLIN)

while True:
    for fd, event in epoll.poll():
        sock = fd_socket[fd]
        print(fd, event)
        # 返回的是文件描述符 需要获取对应socket
        if sock == server:  # 如果是服务器 就接受请求
            client, addr = server.accept()
            # 注册客户端写就绪
            epoll.register(client.fileno(), select.EPOLLIN)
            # 添加对应关系
            fd_socket[client.fileno()] = client

        # 读就绪
        elif event == select.EPOLLIN:
            data = sock.recv(2018)
            if not data:
                # 注销事件
                epoll.unregister(fd)
                # 关闭socket
                sock.close()
                # 删除socket对应关系
                del fd_socket[fd]
                print(" somebody fuck out...")
                continue

            print(data.decode("utf-8"))
            # 读完数据 需要把数据发回去所以接下来更改为写就绪=事件
            epoll.modify(fd, select.EPOLLOUT)
            #记录数据
            msgs.append((sock,data.upper()))
        elif event == select.EPOLLOUT:
            for item in msgs[:]:
                if item[0] == sock:
                    sock.send(item[1])
                    msgs.remove(item)
            # 切换关注事件为写就绪
            epoll.modify(fd,select.EPOLLIN)

数据库相关概念

  数据库本质就是一套CS结构的TCP程序,

  客户端连接到服务器 向服务器发送指令,来完成数据的操作

数据库 与 文件系统的对应关系

一个数据项 name = jerry           本质是文件中某一行的 一部分数据

一条记录 jerry,18,man        本质是文件里的一行数据

一张表                 本质是一个文件

数据库                 文件夹

DBMS DataBaseManagerSystem     数据库管理系统 数据库的服务器端程序

数据库服务器             运行有DBMS的计算机

安装方式

  1.下载解压包

  2.解压到某个目录下

  3.添加环境变量

扫描二维码关注公众号,回复: 6418135 查看本文章

    将bin所在的完整路径 copy 添加系统的path中

  4.作为服务器 应该自启动mysql服务器 需要制系统服务

    mysqld --install 运行输入services 查看是是否成功

    删除服务 sc delete mysql 如果需要重装的话...

    启动服务 net start mysql

    停止服务 net stop mysql

连接服务器的指令

  本质是TCP程序,必须指定ip和端口 ,如果服务器就运行在本机上 可以省略ip 如果端口没改过 也可以省略端口

  完整的写法 :

    mysql -hip -P端口 -u用户名  -p密码  
    实例: mysql -uroot -p
   
 mysql 5.6 默认是没有密码的

修改管理员密码

1.如果知道原始密码 可以使用mysqladmin 这个工具

  mysqladmin -p旧密码  -u用户名 password 新密码
  实例: mysqladmin -uroot -p  password 123

2.不知道原始密码的情况

  删除密码文件,会删除所有授权信息

  跳过授权表 我们可以在启动服务器时 指定让其忽略授权信息

  1.先关闭mysql服务器 直接在终端执行 mysqld --skip-grant-tables

  2.无密码登录root账户

  3.执行更新语句

  update mysql.user set password = password("123") where user="root" and host = "localhost";

 

 

 

  

猜你喜欢

转载自www.cnblogs.com/klw1/p/11005783.html