mysql之source编译,二进制安装以及权限分配等

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

mysql:流程图

mysql内部结构:

两种安装方式:源码编译,二进制安装。

mysql source安装5.5

依赖:

[[email protected]  tools]# yum install -y cmake
[[email protected]  tools]# yum install readline-devel zlib-devel openssl-devel  -y

添加mysql用户组:

[[email protected]  tools]# groupadd -r -g 306 mysql
[[email protected]  tools]# useradd -g mysql -u 306 -r -s /sbin/nologin mysql

创建数据与日记存储目录:

[[email protected] tools]# mkdir /mydata/mysql/data -pv
mkdir: created directory `/mydata/mysql‘
mkdir: created directory `/mydata/mysql/data‘
[[email protected] tools]# mkdir /mydata/mysql/log -pv
mkdir: created directory `/mydata/mysql/log‘
[[email protected] mysql-5.5.48]# chown -R mysql.mysql /mydata/mysql/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5.48  -DMYSQL_DATADIR=/mydata/mysql/data   -DSYSCONFDIR=/etc   -DWITH_INNOBASE_STORAGE_ENGINE=1   -DWITH_ARCHIVE_STORAGE_ENGINE=1   -DWITH_BLACKHOLE_STORAGE_ENGINE=1   -DWITH_READLINE=1   -DWITH_SSL=system   -DWITH_ZLIB=system   -DWITH_LIBWRAP=0   -DMYSQL_UNIX_ADDR=/tmp/mysql.sock   -DDEFAULT_CHARSET=utf8   -DDEFAULT_COLLATION=utf8_general_ci
[[email protected] mysql-5.5.48]# make
[[email protected] mysql-5.5.48]# make install

初始化:

[[email protected] local]# cd /usr/local
[[email protected] local]# chown -R mysql.mysql mysql5.5.48/
[[email protected] local]# cd mysql5.5.48/
[[email protected] mysql5.5.48]# scripts/mysql_install_db --user=mysql --datadir=/mydata/mysql/data/

添加控制脚本:

[[email protected] mysql5.5.48]# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
[[email protected] mysql5.5.48]# chmod +x /etc/rc.d/init.d/mysqld

配置文件:

[[email protected] mysql5.5.48]# cp support-files/my-large.cnf /etc/my.cnf
[[email protected] mysql5.5.48]# vim /etc/my.cnf 
datadir=/mydata/mysql/data
innodb_file_per_table=ON
log-bin=/mydata/mysql/log/mysql-bin

path添加:

[[email protected] mysql5.5.48]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql5.5.48/bin:$PATH
[[email protected] mysql5.5.48]# .  /etc/profile.d/mysql.sh

启动脚本:

[[email protected] mysql5.5.48]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 
[[email protected] mysql5.5.48]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.48-log Source distribution
Copyright (c) 2000, 2016, 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>

二进制安装:5.6.30

创建用户:

 groupadd -r mysql
 useradd -g mysql -r -s /sbin/nologin -M  mysql

创建存储目录:

[[email protected] local]# mkdir /mydata/mysql/data -pv
[[email protected] local]# chown -R mysql:mysql /mydata/mysql/
[[email protected] mysql]# mkdir /mydata/mysql/log
[[email protected] mysql]# chown -R mysql.mysql /mydata/mysql/log

解压缩:

[[email protected] martin tools]# tar xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[[email protected] martin local]# mv mysql-5.6.30-linux-glibc2.5-x86_64/ mysql-5.6.30

初始化库:

[[email protected] local]# cd /usr/local/
[[email protected] local]# chown -R mysql:mysql mysql-5.6.30/
[[email protected] local]# cd mysql-5.6.30/
[[email protected] mysql-5.6.30]# scripts/mysql_install_db --user=mysql --datadir=/mydata/mysql/data
[[email protected] mysql-5.6.30]# cd ..
[[email protected] local]# chown -R root.root mysql-5.6.30/

复制配置文件:

[[email protected] support-files]# cd /usr/local/mysql-5.6.30/support-files
[[email protected] support-files]# cp my-default.cnf /etc/my.cnf

配置文件:

basedir = /usr/local/mysql
datadir = /mydata/mysql/data
port = 3306
server_id = 1
socket = /tmp/mysql.sock
log-bin=/mydata/mysql/log/master-bin
binlog_format=mixed
innodb_file_per_table=ON

启动脚本:

[[email protected] local]# ln -sv mysql-5.6.30/ mysql
[[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[[email protected] mysql]# chmod +x /etc/rc.d/init.d/mysqld
[[email protected] mysql]# chkconfig --add mysqld
[[email protected] mysql]# chkconfig mysqld on

导入环境变量:

[[email protected] local]#  vim /etc/profile.d/mysqld.sh
export PATH=/usr/local/mysql/bin:$PATH
[[email protected] local]# . /etc/profile.d/mysqld.sh

mysql数据初始化

mysql> use mysql;
mysql> select user,host,password from user;
+------+-----------+----------+
| user | host      | password |
+------+-----------+----------+
| root | localhost |          |
| root | martin    |          |
| root | 127.0.0.1 |          |
| root | ::1       |          |
|      | localhost |          |
|      | martin    |          |
+------+-----------+----------+

删除无用账号,设置密码

mysql> DROP USER ‘‘@localhost;
mysql> DROP USER ‘root‘@‘::1‘;
mysql> DROP USER ‘‘@‘martin‘;
mysql> set password for ‘root‘@‘localhost‘=password(‘123456‘);
mysql> set password for ‘root‘@‘127.0.0.1‘=password(‘123456‘);
mysql> set password for ‘root‘@‘martin‘=password(‘123456‘);
mysql> FLUSH PRIVILEGES;
mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *437F1809645E0A92DAB553503D2FE21DB91270FD |
| root | 127.0.0.1 | *437F1809645E0A92DAB553503D2FE21DB91270FD |
| root | marvin    | *437F1809645E0A92DAB553503D2FE21DB91270FD |
+------+-----------+-------------------------------------------+

用户连接:

[[email protected] mysql5.5.48]# mysql -uroot -hlocalhost  --protocol=socket --socket=/tmp/mysql.sock  --port=3306 -p

mysql命令解释:

mysql
   -u, --user   用户名
   -h, --host   主机
   -p, --password 密码
   --protocol={tcp|socket|memory|pipe} 协议
   --port     端口
   --socket    例如:/tmp/mysql.sock
mysql监听的端口: 3306/tcp

查看服务器变量:

mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE ‘‘];

修改变量:

mysql> SET {GLOBAL|SESSION} VARIABLE_NAME=‘VALUE‘;

注意:无论是全局还是会话级别的动态变量修改,在重启mysqld后都会失效;想永久有效,可定义在配置文件中的相应段中[mysqld];

mysql的快捷键:

Ctrl + w: 删除光标之前的单词
Ctrl + u: 删除光标之前至命令行首的所有内容
Ctrl + y: 粘贴使用Ctrl+w或Ctrl+u删除的内容
Ctrl + a: 移动光标至行首
Ctrl + e: 移动光标至行尾

权限设置

GRANT priv_type [(column_list)]
              [, priv_type [(column_list)]] ...
            ON [TABLE|FUNCTION|PROCEDURE] priv_level
            TO [email protected] [IDENTIFIED BY ‘password‘], [[email protected] [],...]
            [REQUIRE SSL]
            [WITH with_option ...]
累加式:
mysql> GRANT CREATE ON testdb.* TO ‘marco3‘@‘192.168.1.%‘;
mysql> GRANT insert ON testdb.* TO ‘marco3‘@‘192.168.1.%‘;

收回权限:

REVOKE
            priv_type [(column_list)]
              [, priv_type [(column_list)]] ...
            ON [object_type] priv_level
            FROM user [, user] ...

        REVOKE ALL PRIVILEGES, GRANT OPTION
            FROM user [, user] ...
mysql> REVOKE insert ON testdb.* FROM ‘marco3‘@‘192.168.1.%‘;

小结:一般会用到  (grant|revoke) 操作  on  [库名.表名] from   ‘user‘@‘host‘;

时间: 2024-10-11 20:59:47

mysql之source编译,二进制安装以及权限分配等的相关文章

MySQL 5.7.22 二进制安装

MySQL 5.7.22 二进制安装 一.到官网下载mysql-5.7.22二进制包 二.创建mysql用户: useradd mysql -s /sbin/nologin -M 三.解压mysql-5.7.22-el7-x86_64.tar.gz : tar xf mysql-5.7.22-el7-x86_64.tar.gz && mv mysql-5.7.22-el7-x86_64.tar.gz /opt/mysql 四.创建相关目录: cd /opt/mysql mkdir {dat

Mysql 5.6版本二进制安装

时间:2018.7.30作者:李强参考:man,info,magedu讲义,万能的internet实验环境:VMware? Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好.版本:v1-2018.7.30 参考资料 1.https://www.cnblogs.com/BrightMoon

MySQL 8.0.13 二进制安装

MySQL 8.0 二进制安装大致与MySQL 5.7 类似 1.查询删除原有mysql使用rpm -qa | grep mysql 或mariadb 搜索 mysql,如果存在,使用rpm -e --nodeps mariadb-全部删除,或使用yum remove mysql mysql-server mysql-libs compat-mysql51全部删除:2.下载所需依赖包yum remove libnuma.so.1yum install make cmake libaio wget

mysql 5.7.12二进制安装

1.my.cnf配置文件参数:vim /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysql] no-auto-rehash [mysqld] user = mysql port = 3306 socket = /tmp/mysql.sock basedir = /aliyun/server/mysql-5.7.12/ datadir = /data/mysql/data/ open_files_limit = 1024

MySQL 5.6.19 二进制安装

1.        操作系统 CentOS release 6.2 (Final) 2.        创建用户和组 [[email protected]1 ~]# groupadd mysql [[email protected] ~]# useradd -r -g mysqlmysql 3.        解压安装包(解压到你想存储数据库数据的地方) [[email protected] ~]# cd /data [[email protected] data]# tar -xzvf /ro

mysql 5.7.21 二进制安装

1. 说明 适用于CentOS 6.*和CentOS 7.* 系统版本:CentOS 6.8_x86-64     mysql版本:mysql-5.7.21-linux-glibc2.5-x86_64.tar.gz mysql程序安装路径:/data/mysql mysql数据存放路径:/data/mysql/data socket存放路径: /data/mysql/mysql.sock 安装方式:二进制文件安装 2. 新建用户 [[email protected] ~]# yum instal

Mysql的cmake编译与安装

实验准备环境: 我的操作系统是centos6.6 编译安装MariaDB之前,我们需要准备一些需要的环境 1.开发包组套件 [[email protected] ~]# yum -y groupinstall "Development Tools" "Server Platform Development" ? 2. 安装上这个跨平台的构建工具------cmake [[email protected] ~]# yum -y install cmake ? ftp:

mysql 8.0.11 二进制安装

#!/bin/bash ## 2018-5-24 ## hequan mkdir -p /data/src/ cd /data/src/ if [ ! -f mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz ]; then wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz fi yum install -y numactl.x86

mysql 的二进制安装

二进制安装 其实就是已经编译好的mysql,做了个压缩包,下载下来,解压缩,简单配置之后,就能使用,'安装'速度快,往往用于mysql的快速部署. 添加 mysql 用户: [[email protected] ~]# groupadd mysql [[email protected] ~]# useradd -s /sbin/nologin -g mysql -M mysql -s /sbin/nologin 表示禁止该用户登入系统,提高安全性 -g mysql 指定mysql 用户属于mys