MySQL
编译安装MySQL
https://www.cnblogs.com/shijiaqi1066/p/4311061.html
链接中的配置文件中的
[client]
socket
[mysqld]
datadir
socket
这几个目录有问题
1、配置阿里源
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
rm -rf CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
2、卸载Mysql
rpm -qa | grep mysql
rpm -e 目标文件 --nodeps //忽略依赖
3、配置编译环境
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
4、 groupadd mysql //新增用户组
useradd -r -g mysql mysql //新增mysql用户
mkdir -p /usr/local/mysql //mysql安装目录
mkdir -p /data/mysqldb //mysql数据库数据文件目录
5、cmake执行脚本
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
6、make && make install //编译安装
7、修改mysql目录所有者和组
修改mysql安装目录
cd /usr/local/mysql
chown -R mysql:mysql .
修改mysql数据库文件目录
cd /data/mysqldb
chown -R mysql:mysql .
//chown最后跟文件名。此处使用“.”,表示当前目录
8、初始化mysql数据库
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
mysql_install_db //生成mysql系统表,并且最后在mysql目录下生成一个my.cnf文件
--user=mysql //作用是指定运行mysqld进程的用户名。设置这个用户后,所有通过mysqld进程创建的文件(如日志等都会属于这个用户)
9、mysql配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
10、将mysql执行命令添加入PATH
vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
export PATH
source /etc/profile
11、将mysql设置为系统服务并启动服务
cp support-files/mysql.server /etc/init.d/mysqld
12、启动mysql
service mysqld start
第一遍安装时出现的问题:
https://www.cnblogs.com/shijiaqi1066/p/4311061.html //安装链接
卸载mysql:
https://www.cnblogs.com/taomylife/p/7234925.html //卸载
https://www.cnblogs.com/kerrycode/p/4353755.html //不管依赖 --nodeps
编译安装cmake:
http://bbs.51cto.com/thread-1175231-1-1.html //编译安装cmake出现错误
--no-check-certificate //不检查证书
https://blog.csdn.net/my_name_nb/article/details/80503671 //mysql源码包下载
https://blog.csdn.net/tianlebest/article/details/69941489
https://blog.csdn.net/liuhui_306/article/details/41253175 //./bootstrap出现问题
编译安装mysql:
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE): Curses library not found.
Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package
https://www.cnblogs.com/rooney/archive/2012/06/19/2554581.html //解决方案
登录 mysql
退出 \q
show engines; //查看引擎
cd /data/mysqldb/mysql //查看表文件类型
ls
vim .my.cnf //直接登录mysql的隐藏文件
[client]
user=root
password=mysql
host=localhost
show variables like '%innodb%'; //查看表空间文件,里面的数据可以修改
vim /etc/my.cnf
create database mydb;
use mydb;
crete table······
cd /data/mysqldb/mydb
ls
db.opt testdb.frm testdb.ibd
db.opt //默认排序规则和字符集
default-character-set=utf8
default-collation=utf8_general_ci
.frm //表结构
.idb //表空间
32_04 客户端工具的使用
mysql -D mydb //直接连到数据库mydb
select database();
mysql>
交互模式
批处理模式(脚本模式)
mysql < init.sql
source ——>\.
也可以直接这样
mysql>
命令两类:
客户端命令:
\c clear 提前终止语句执行(不能加语句结束符)
\g 无论语句结束符是什么,直接将此语句送至服务器端执行;
\G 无论语句结束符是什么,直接将此语句送至服务器端执行,而且结果以竖排方式显示;
\! system 执行shell语句
\w 语句执行结束后显示警告信息
\# 对新建的对象,支持补全功能
服务器语句:有语句结束符,默认是(;)
\d 或delimiter 定义语句结束符
mysql>提示符
->
'> //单引号缺后一半
">
`>
其它选项
--ssl-verify-server-cert //验证服务器端证书
补全
名称补全
禁用名称补全
开启名称补全
\#
rehash
服务器端命令获取帮助
help KEYWORD
help CREATE INDEX
客户端命令
# mysqladmin [options] command [arg] [command [arg]] ... //arg参数
# mysqladmin -u root -p password 'NEW_PASS'
mysqladmin create DATABASE
drop DATABASE
ping
-u root -p -h 172.16.0.1 ping
processlist
status
--sleep N 显示频率
--count N 显示多个状态
extended-status mysql 显示状态变量
variables 显示服务器变量
flush-privileges 让mysqld重读授权表,等同于reload
flush-status 重置大多数的服务器状态变量
flush-logs 二进制和中继日志滚动
flush-hosts
refresh 相当于同时执行flush-hosts和flush-logs
shutdown 关闭mysql服务器进程
version 服务器版本及当前状态信息
start-slave 启动复制,启动从服务器复制线程
SQL thread
IO thread
stop-slave 关闭复制
mysqldump,mysqlimport,mysqlcheck