Mysql&MariaDB¶
登陆¶
无密码本地登陆 $ mysql $ sudo mysql 无密码用户名登陆 $ mysql -u umane 用户名密码登陆 $ mysql -u uname -p
创建用户 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; username:用户名 host:登陆主机,本地'localhost',远程'%' password:密码,可以为空''
授权 命令:GRANT privileges ON databasename.tablename TO 'username'@'host'; privileges:SELECT , INSERT , UPDATE,ALL databasename:要授权的数据库名,全部则为* tablename:要授权的表名,全部则为* 创建同时授权: GRANT all privileges ON . to test@'%' IDENTIFIED BY '1234';
设置或修改用户密码 命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
撤销用户权限 命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
查看用户权限 SHOW GRANTS FOR 'dog'@'localhost';
删除用户 命令: DROP USER 'username'@'host';
保存设置 flush privileges;
表管理¶
删除数据库中所有的表 1、选择数据库中的所有的表 SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'mydb'; 2、将输出的内容再运行一次
MySQL 安装配置¶
MySQL 是最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。 MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。 MySQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。 MySQL 安装 本教程的系统平台:CentOS release 6.6 (Final) 64位。 一、安装编译工具及库文件 yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
二、 安装cmake 编译器 1、下载cmake安装包 wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz 2、解压安装包 tar zxvf cmake-3.1.1.tar.gz 3、进入安装包目录 cd cmake-3.1.1 4、编译安装 ./bootstrap make && make install
三、安装 MySQL MySQL版本:mysql-5.6.15。 1、下载MySQL安装包 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz 2、解压安装包 tar zxvf mysql-5.6.15.tar.gz 3、进入安装包目录 cd mysql-5.6.15 4、编译安装 $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306 $ make && make install 5、查看mysql版本: /usr/local/webserver/mysql/bin/mysql --version 到此,mysql安装完成。
MySQL 配置 1、创建mysql运行使用的用户mysql: /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql 2、创建binlog和库的存储路径并赋予mysql用户权限 mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/ 3、创建my.cnf配置文件 将/etc/my.cnf替换为下面内容 $ cat /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema user = mysql port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/webserver/mysql datadir = /www/data_mysql log-error = /usr/local/webserver/mysql/mysql_error.log pid-file = /usr/local/webserver/mysql/mysql.pid open_files_limit = 65535 back_log = 600 max_connections = 5000 max_connect_errors = 1000 table_open_cache = 1024 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 600 #thread_concurrency = 8 query_cache_size = 128M query_cache_limit = 2M query_cache_min_res_unit = 2k default-storage-engine = MyISAM default-tmp-storage-engine=MYISAM thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 128M max_heap_table_size = 128M log-slave-updates log-bin = /usr/local/webserver/mysql/binlog/binlog binlog-do-db=oa_fb binlog-ignore-db=mysql binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 1G relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog relay-log = /usr/local/webserver/mysql/relaylog/relaylog expire_logs_days = 10 key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover interactive_timeout = 120 wait_timeout = 120 skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 #master-host = 192.168.1.2 #master-user = username #master-password = password #master-port = 3306 server-id = 1 loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0 slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log long_query_time = 1 [mysqldump] quick max_allowed_packet = 32M
Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). OK ... 5、创建开机启动脚本 $ cd /usr/local/webserver/mysql/ $ cp support-files/mysql.server /etc/rc.d/init.d/mysqld $ chkconfig --add mysqld $ chkconfig --level 35 mysqld on 6、启动mysql服务器 $ service mysqld start 7、连接 MySQL $ /usr/local/webserver/mysql/bin/mysql -u root -p 修改MySQL用户密码 mysqladmin -u用户名 -p旧密码 password 新密码 或进入mysql命令行 SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码'); 创建新用户并授权: grant all privileges on . to 用户名@'%' identified by '密码' with grant option; 其他命令 启动:service mysqld start 停止:service mysqld stop 重启:service mysqld restart 重载配置:service mysqld reload
MariaDB安装配置¶
安装准备
创建mysql用户组,-r系统用户组
$ groupadd -r mysql
创建用户并加入到mysql系统用户组
$ useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql
添加新用户 -r添加系统用户 -g用户所属组-s登录的shell -d新帐户的主目录 -M不要自动创建目录
创建数据库相关目录
$ mkdir -pv /data/mysql
$ chown -R mysql:mysql /data/mysql/
删除CentOS 默认数据库配置文件
$ find -H /etc/ | grep my.c
$ rm -rf /etc/my.cnf /etc/my.cnf.d/
$ find -H /etc/ | grep my.c
卸载系统自带mariadb-libs
$ rpm -qa|grep mariadb*
$ rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
安装相关包
$ yum -y install libaio libaio-devel bison bison-devel zlib-devel openssl openssl-devel ncurses ncurses-devel libcurl-devel libarchive-devel boost boost-devel lsof wget gcc gcc-c++ make cmake perl kernel-headers kernel-devel pcre-devel
$ cd /usr/local/src
编译安装cmake,ncurses,Bison,Boost
$ wget https://github.com/Kitware/CMake/releases/download/v3.13.3/cmake-3.13.3.tar.gz
$ tar -zxvf cmake-3.13.3.tar.gz
$ cd cmake-3.13.3
$ ./bootstrap
$ gmake && make install $$ cd ..
$ curl -O http://120.52.51.14/ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
$ tar -zxvf ncurses-6.1.tar.gz
$ cd ncurses-6.1
$ ./configure
$ make && make install && cd ..
$ curl -O http://alpha.gnu.org/gnu/bison/bison-3.2.91.tar.gz
$ tar -zxvf bison-3.2.91.tar.gz
$ cd ncurses-6.1
$ ./configure
$ make && make install && cd ..
$ wget https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0_rc1.tar.gz
$ tar -zxvf boost_1_69_0_rc1.tar.gz
$ cd boost_1_69_0
$ ./bootstrap.sh
$ ./b2 stage --with-iostreams --toolset=gcc link=static runtime-link=shared threading=multi release
$ ./b2 install --prefix=/opt/boost
下载安装MariaDB
$ curl -O http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.3.12/source/mariadb-10.3.12.tar.gz
$ tar -zxvf mariadb-10.3.12.tar.gz
$ cd mariadb-10.3.12
$ cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DEXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_MAINTAINER_MODE=0
参数含义
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 [启用加载本地数据]
-DENABLE_DOWNLOADS=1 [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_DEBUG=0 [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1 [MySQL的数据库引擎]
-DWITH_READLINE=1 [MySQL的readline library]
-DWITH_SSL=system [通讯时支持ssl协议]
-DWITH_ZLIB=system [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql [MySQL用户名]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 [MySQL的监听端口]
-DMYSQL_MAINTAINER_MODE=0
$ make && make install && cd # 上步失败$ rm -f CMakeCache.txt
使用maria用户执行脚本, 安装数据库到数据库存放目录
$ cd /usr/local/mysql # 需要在此目录下
$ /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql
复制MariaDB配置文件到/etc目录
$ cp /usr/local/mysql/support-files/wsrep.cnf /etc/my.cnf
创建启动脚本
$ cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
启动mysqld服务
$ /etc/rc.d/init.d/mysqld start
配置环境变量
$ vim /etc/profile.d/mysql.sh
输入以下内容
export PATH=$PATH:/usr/local/mysql/bin/
保存并退出
:wq
为脚本赋于可执行权限
$ chmod 0777 /etc/profile.d/mysql.sh
读取并执行mysql.sh
脚本, 并执行脚本, 以立即生效环境变量
$ source /etc/profile.d/mysql.sh
运行MariaDB初始化脚本
$ /usr/local/mysql/bin/mysql_secure_installation
根据提示初始化操作
启动MariaDB服务
$ systemctl start mysqld
查看MariaDB服务状态
$ systemctl status mysqld