• mysql 5.6数据库源码安装


    源码安装mysql

    1.源码包比二进制包小,因为没有生成
    2.源码包解压后文件较多
    3.systemctl 有时候启动不成功也不会报错
    4.生成之后打包该目录,即为二进制包
    5./etc/init.d/mysqld start 如果有报错的话,会输出
    6.什么启动方式,就用什么关闭方式
    
    1.rz
    2.安装依赖
    [root@db02 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc  cmake autoconf openssl opsssl-devel
    3.解压mysql安装包
    [root@db02 ~]# tar xf mysql-5.6.46.tar.gz 
    
    4.生成
    [root@db02 ~]# cd mysql-5.6.46/
    [root@db02 mysql-5.6.46]#
    #程序存放位置
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.46 
    #数据存放位置
    -DMYSQL_DATADIR=/usr/local/mysql-5.6.46/data 
    #socket文件存放位置
    -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.46/tmp/mysql.sock 
    #使用utf8字符集
    -DDEFAULT_CHARSET=utf8 
    #校验规则
    -DDEFAULT_COLLATION=utf8_general_ci 
    #使用其他额外的字符集
    -DWITH_EXTRA_CHARSETS=all 
    #支持的存储引擎
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    #禁用的存储引擎
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
    #启用zlib库支持(zib、gzib相关)
    -DWITH_ZLIB=bundled 
    #启用SSL库支持(安全套接层)
    -DWITH_SSL=system 
    #启用本地数据导入支持
    -DENABLED_LOCAL_INFILE=1 
    #编译嵌入式服务器支持
    -DWITH_EMBEDDED_SERVER=1 
    # mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
    -DENABLE_DOWNLOADS=1 
    #禁用debug(默认为禁用)
    -DWITH_DEBUG=0
    
    模板
    [root@db02 mysql-5.6.46]# cd mysql-5.6.46/ && cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.46 
    -DMYSQL_DATADIR=/usr/local/mysql-5.6.46/data 
    -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.46/tmp/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_EXTRA_CHARSETS=all 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
    -DWITH_ZLIB=bundled 
    -DWITH_SSL=system 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_EMBEDDED_SERVER=1 
    -DENABLE_DOWNLOADS=1 
    -DWITH_DEBUG=0
    
    #编译
    [root@db02 mysql-5.6.46]# make
    #安装
    [root@db02 mysql-5.6.46]# make install
    #做软链接
    [root@db02 mysql-5.6.46]# ln -s /usr/local/mysql-5.6.46/ /usr/local/mysql
    #创建用户
    [root@db02 mysql-5.6.46]# useradd mysql -s /sbin/nologin -M
    #拷贝配置文件
    [root@db02 mysql-5.6.46]# cp support-files/my-default.cnf /etc/my.cnf
    #拷贝mysql启动脚本
    [root@db02 mysql-5.6.46]# cp support-files/mysql.server /etc/init.d/mysqld
    #进入MySQL初始化脚本目录
    [root@db02 mysql-5.6.46]# cd /usr/local/mysql/scripts/
    #初始化MySQL
    [root@db02 mysql-5.6.46]# ./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
    
    #授权
    [root@db02 mysql-5.6.46]# chown -R mysql.mysql /usr/local/mysql/
    #给启动脚本授权700
    [root@db02 mysql-5.6.46]# chmod 700 /etc/init.d/mysqld
    #systemd管理mysql启动
    [root@db02 mysql-5.6.46]# vim /usr/lib/systemd/system/mysqld.service
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    #设置开机自启动C6
    [root@db02 mysql-5.6.46]# chkconfig mysqld on
    #设置开机自启动C7
    [root@db02 mysql-5.6.46]# systemctl enable mysqld
    #启动MySQLC6
    [root@db02 mysql-5.6.46]# /etc/init.d/mysqld start
    #启动MySQLC7
    [root@db02 mysql-5.6.46]# systemctl start mysqld
    
    #创建tmp目录(5.6.46版本不会自动创建tmp目录)
    [root@db02 mysql-5.6.46]# mkdir /usr/local/mysql-5.6.46/tmp
    #添加环境变量
    [root@db02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile/
    #个人推荐
    [root@db02 ~]# echo 'PATH=/usr/local/mysql/bin/:$PATH' >/etc/profile.d/mysql.sh
    [root@db02 ~]# source /etc/profile.d/mysql.sh
    #设置MySQL密码
    [root@db02 ~]# mysqladmin -uroot password 'oldboy123'
    #MySQL登陆
    [root@db02 ~]# mysql -uuser -ppassword -Ssocket -hhost
    
    
    #MySQL基本操作及基本优化
    #查看库
    mysql> show databases;
    #删库
    mysql> drop database test;
    #使用库
    mysql> use mysql
    #查看表
    mysql> show tables;
    #查看当前所在库
    mysql> select database();
    #查看mysql用户
    mysql> select user,host from user;
    mysql> select user,host,password from user;
    #删除用户
    mysql> select user,host from user;
    mysql> drop user ''@'db02';
    mysql> drop user root@db02;
    mysql> drop user root@'::1';
    mysql> drop user root@'127.0.0.1';
    
    #数据库重载 启动 停止
    [root@db02 scripts]# systemctl daemon-reload
    [root@db02 scripts]# systemctl start mysqld
    [root@db02 scripts]# systemctl stop mysqld
    

    数据库启动失败报错

    [root@db02 scripts]# /etc/init.d/mysqld start
    Starting MySQL.Logging to '/usr/local/mysql-5.6.46/data/db02.err'.
    200709 15:42:14 mysqld_safe Directory '/usr/local/mysql-5.6.46/tmp' for UNIX socket file don't exists.
     ERROR! The server quit without updating PID file (/usr/local/mysql-5.6.46/data/db02.pid).
     
    #原因:
    1.cmake过程指定了socket文件位置,实际位置不存在
    2.目录权限不足
     
    #解决:
    [root@db02 scripts]# mkdir /usr/local/mysql-5.6.46/tmp/
    [root@db02 scripts]# chown -R mysql.mysql /usr/local/mysql
    [root@db02 scripts]# chown -R mysql.mysql /usr/local/mysql-5.6.46/
    
  • 相关阅读:
    PHP的垃圾回收机制
    python使用httpHandler处理请求案例
    使用python中urllib.request.Request()来构建ua
    Pillow《转载》
    python数据格式化之pprint
    使用Mechanize实现自动化表单处理
    beautifulSoup《转》
    Python3网络爬虫(四):使用User Agent和代理IP隐藏身份《转》
    python urllib和urllib3包使用
    使用Mechanize实现自动化表单处理
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13357556.html
Copyright © 2020-2023  润新知