MySQL
MySQL
环境搭建
Linux
下载安装包并离线安装
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.20-1ubuntu14.04_amd64.deb-bundle.tar
tar -xvf mysql-server_5.7.20-1ubuntu14.04_amd64.deb-bundle.tar
dpkg -i *.deb- 在线安装
apt-get install mysql-server mysql-client libmysqlclient-dev
安装过程中根据提示输入 mysql 用户中的 root 用户的密码- 启动服务
- 方法一:使用 mysqladmin 启动
mysqladmin start - 方法二:启动服务
/etc/init.d/mysql start
- 方法一:使用 mysqladmin 启动
- 重启服务
- 方法一:使用 mysqladmin 重启
mysqladmin restart - 方法二:重启服务
/etc/init.d/mysql restart
- 方法一:使用 mysqladmin 重启
- 关闭服务
mysqladmin shutdown
- 启动服务
Windows
- 离线安装
- 下载 mysql-8.0.13-winx64.zip 并解压
- 初始化 data 目录
./bin/mysqld --initialize-insecure - 独立(非服务模式)运行
./bin/mysqld --standalone --console- 安装至系统服务
./bin/mysqld --install- 启动系统服务
net start mysql
- 启动系统服务
- 删除系统服务
./bin/mysqld --remove
./bin/mysqld --remove MySQL
- 安装至系统服务
- 登录/连接 mysql 控制台
mysql -uroot
- 离线安装
控制台(mysql)操作
登录/连接 mysql 控制台环境
- 场景一:指定的 mysql 用户 root 已设置密码,需以密钥的方式登录
mysql -uroot -p
mysql -u root -p
使用 test 用户登录远程主机 192.168.1.101(使用默认端口号 3306)的 mysql 服务
mysql -h 192.168.1.101 -u test -p
根据提示输入密码,验证通过后进入 mysql 命令行控制台界面中 - 场景二:登录的 mysql 用户(root)未设置密码
mysql参数 “-u” 指定登录用户名称,默认使用 mysql 用户中的 root 用户
- 场景一:指定的 mysql 用户 root 已设置密码,需以密钥的方式登录
操作、命令
执行 sql 语句(参考 MySql 语法)
-- 显示所有数据库 show databases; -- 打开/使用 mysql 数据库(即切换当前所使用的数据库,也可通过 use 其他数据库来直接切换当前所使用的数据库) -- 打开之后,不指定数据库名如 "select * from user;" 默认使用当前打开的数据库中的表 user;也可在未打开任何数据库的情况下,直接指定数据库名如 "select * from mysql.user;"。) use mysql; -- 显示当前已打开的数据库中所有表 show tables; -- 显示数据表 user 的结构 describe user; -- 显示数据表 user 的列 -- show columns from user;查询(mysql 系统)用户
select Host, User, Password as Pass from mysql.user;命令行中,以
\G结尾,表示垂直显示查询结果,如select top(3) * from mysql.user\G执行 sql 脚本 data.sql
source data.sql将查询结果导出到文件 user.txt 中
select Host, User, Password as Pass from mysql.user into outfile './user.txt';若导入导出文件失败,且抛出 “ERROR 1290” 异常,解决方法见 导出文件时抛出异常 “ERROR 1290 (HY000): …
导出的文件见 /var/lib/mysql/user.txt-
-- 导出 users 表中数据至 users.csv 文件中 select * from users into outfile '/tmp/users.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; -- 将 users.csv 文件中数据导入到 users 表中 load data infile '/tmp/users.csv' into table users fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; 将 table02 中的数据备份到 table02b 中
create table table02b(select * from table02);查看当前所有连接信息
status
查看当前所有连接进程、等待时间、所处状态、是否 locked
show full processlist
退出控制台环境
exit
控制台(其他)操作
- 使用 mysqldump 备份还原数据库
- 备份数据库
mysqldump -u root commerce > backup.sql - 还原数据库
mysql -u root < backup.sql
- 备份数据库
配置
使用 mysqladmin 修改 mysql 用户密码
mysqladmin -u[用户名] -p[旧密码] password [新密码]实时查看 mysql 当前连接数
- 方法一
- 查看当前所有连接的详细资料
./mysqladmin -uroot -p -h192.168.1.101 processlist - 只查看当前连接数(其中 Threads 即为连接数)
./mysqladmin -uroot -p -h192.168.1.101 status
- 查看当前所有连接的详细资料
- 方法二
或直接使用 mysql 控制台执行查询连接进程信息,并导出到文件 conns.txt 中
`mysql -e 'show full processlist;' > conns.txt`
- 方法一
配置 mysql 最大连接数
- 编辑 my.cnf(windows 环境下为 my.ini),修改如下
max_connections = 100
- 编辑 my.cnf(windows 环境下为 my.ini),修改如下