Linux上安装mysql

数据库的种类:

1.关系型数据库(RDBMS):
  MySQL,Oracle,MSSQL(SQLserver)
2.非关系型数据库(NoSQL):
  Redis,Memcache,MongoDB,elasticsearch

MySQL的版本选择潜规则:

  官方网站:https://www.mysql.com/

  MySQL5.6:
    1.选择GA 6-12个月
    2.小版本号为偶数版

  MySQL5.7
    1.选择GA 6-12个月
    2.小版本号为偶数版
    3.MySQL5.7.17以上版本   MGR

 

1.安装源码版
  1.解压
    [root@db01 ~]# tar xf mysql-5.6.40.tar.gz
  2.进入目录
    [root@db01 ~]# cd mysql-5.6.40
    [root@db01 mysql-5.6.40]# ll
  3.生成编译文件

  cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.40 \
  -DMYSQL_DATADIR=/usr/local/mysql-5.6.40/data \
  -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.40/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=bundled \
  -DENABLED_LOCAL_INFILE=1 \
  -DWITH_EMBEDDED_SERVER=1 \
  -DENABLE_DOWNLOADS=1 \
  -DWITH_DEBUG=0

    #程序存放位置
  cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
  #数据存放位置
  -DMYSQL_DATADIR=/application/mysql-5.6.38/data \
  #socket文件存放位置
  -DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/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=bundled \
  #启用本地数据导入支持
  -DENABLED_LOCAL_INFILE=1 \
  #编译嵌入式服务器支持
  -DWITH_EMBEDDED_SERVER=1 \
  # mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
  -DENABLE_DOWNLOADS=1 \
  #禁用debug(默认为禁用)
  -DWITH_DEBUG=0

 

  4.编译
    make
  5.安装
​     make install

 

  安装二进制版

    二进制安装后需要先将解压完的文件移动到/usr/local/mysql-5.6.40

    mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.40

 

  6.进入mysql程序目录
    [root@db02 ~]# cd /usr/local/mysql-5.6.40/
  7.创建mysql系统用户
    [root@db01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M
  8.进入配置文件及脚本目录
    [root@db02 mysql-5.6.40]# cd support-files/
  9.拷贝配置文件到etc
    [root@db01 support-files]# cp my-default.cnf /etc/my.cnf
    cp: overwrite ‘/etc/my.cnf’? y
  10.拷贝启动脚本
    [root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
  11.进入初始化目录
    [root@db01 mysql-5.6.40]# cd /usr/local/mysql-5.6.40/scripts/
  12.初始化数据库
    [root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.6.40 --datadir=/usr/local/mysql-5.6.40/data
  13.做软连接
​     [root@db02 scripts]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql
  14.启动mysql
    [root@db02 scripts]# /etc/init.d/mysqld start

    Starting MySQL.Logging to '/usr/local/mysql/data/db02.err'.
    . SUCCESS!

  15.添加环境变量
    [root@db02 scripts]# vim /etc/profile
    export PATH="/usr/local/mysql/bin:$PATH"
​   16.加载环境变量
    [root@db02 scripts]# source /etc/profile
  17.授权
    [root@db01 scripts]# chown  -R mysql.mysql /usr/local/mysql*
  18.连接mysql
    [root@db02 scripts]# mysql
  19.设置mysql密码
    [root@db02 scripts]# mysqladmin -uroot -p password 123
  20.连接mysql
    [root@db01 scripts]# mysql -uroot -p123

 

  安装源码版的时候:
    注意:
​     如果报错可以去 tail -100 /usr/local/mysql/data/db02.err这里查看报错

 

mysql基础优化:

1.删除 没有用的库
mysql> show databases;
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

2.删除没有用的用户
mysql> select user,host from mysql.user;
mysql> drop user root@'::1';
Query OK, 0 rows affected (0.00 sec)
mysql> delete from mysql.user where user='root' and host='db01';

 

  配置多个数据库实现主从复制时数据库的配置:
​     [root@db01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    配置时注意IP和网关:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.51"
PREFIX="24"
GATEWAY="10.0.0.2"
DNS1="223.5.5.5"

 

Linux换源:(阿里云)
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 

要想直接将压缩文件拖到Linux中:需安装
​     yum install -y lrzsz
虚拟机优化:
​   systemctl stop firewalld      关闭防火墙
​  systemctl disable firewalld
​   [root@db01 mysql-5.6.40]# getenforce   查看数据库的安全权限
​   [root@db01 mysql-5.6.40]# setenforce 0  修改安全权限,不修改很多东西不能实现
​   [root@db03 ~]# vim /etc/sysconfig/selinux  修改上述的权限,配置文件中修改,永久修改,上面只是临时的
​   sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux     这条命令是不进入文件替换配置文件

 

posted on 2019-05-08 20:19  小锦毛  阅读(135)  评论(0编辑  收藏  举报