mysql笔记
mysql 常用命令
mysql 导出数据库:
mysqldump --no-defaults -h localhost -u root -p hmms_dtrmyy > test.sql
//如果不加--no-defaults的话,会报错mysqldump: unknown option '--no-beep'
mysqldump --no-defaults --skip-lock-tables -h 120.25.217.140 -u car -p mo_car_sys > car.sql
//如果不加 --skip-lock-tables的话,会报错mysqldump: Got error: 1044: Access denied for user 'car'@'%' to database 'mo_car_sys' when using LOCK TABLES
mysql 清空缓存
可通过如下方法清空查询缓存
reset query cache;
mysql导入导出数据库
windows下
-
导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql
-
导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u dbuser -p dbname users> dbname_users.sql
-
导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
-
导入数据库
常用source 命令 进入mysql数据库控制台,如 mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:/dbname.sql
linux下
-
导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
-
导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码
-
只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql #/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql 注:/usr/local/mysql/bin/ ---> mysql的data目录
-
-
导入数据库
-
首先建空数据库
mysql>create database abc;
-
导入数据库
方法一: (1)选择数据库 mysql>use abc; (2)设置数据库编码 mysql>set names utf8; (3)导入数据(注意sql文件的路径) mysql>source /home/abc/abc.sql; 方法二: mysql -u用户名 -p密码 数据库名 < 数据库名.sql #mysql -uabc_f -p abc < abc.sql
-
linux常用命令
linux下创建文件夹:
mkdir software //mkdir是命令 software是创建的目录
linux下通过ssh传输文件:
-
上传本地文件到服务器
scp /path/filename username@servername:/path/ #例如scp /var/www/test.php root@192.168.0.101:/var/www/ #把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
-
从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录) #例如scp root@192.168.0.101:/var/www/test.txt #把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
-
从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录) #例如:scp -r root@192.168.0.101:/var/www/test /var/www/
-
上传目录到服务器
scp -r local_dir username@servername:remote_dir #例如:scp -r test root@192.168.0.101:/var/www/ #把当前目录下的test目录上传到服务器的/var/www/ 目录 #scp -r mariadb-10.2.10 root@172.17.97.24:/home/software
linux下使用ssh命令连接远程服务器
ssh root@47.95.213.36 后面会提示输入密码
mariadb离线安装
首先从网站http://yum.mariadb.org/10.2.10/centos6-amd64/rpms/下载对应的安装包,有如下几个
安装之前,需要先检查之前是否已经安装过老的版本,如果有,需要删除掉
检查是否安装了相关组件
rpm -qa | grep -i mariadb
rpm -qa | grep -i mariadb-libs
rpm -qa | grep -i mysql-libs
如果上面这些命令找到了相关组件,比如mysql-libs-5.1.73-8.el6_8.x86_64
,则使用下面的命令进行删除
rpm -ev --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
下面分别进行安装:
rpm -ivh jemalloc-3.6.0-1.el6.x86_64.rpm --nodeps // nodeps是指不要分析依赖关系,否则因为离线,会报各种错
rpm -ivh jemalloc-devel-3.6.0-1.el6.x86_64.rpm --nodeps
rpm -ivh MariaDB-10.2.10-centos6-x86_64-common.rpm --nodeps
rpm -ivh MariaDB-10.2.10-centos6-x86_64-compat.rpm --nodeps
rpm -ivh MariaDB-10.2.10-centos6-x86_64-client.rpm --nodeps
rpm -ivh galera-25.3.20-1.rhel6.el6.x86_64.rpm --nodeps
rpm -ivh MariaDB-10.2.10-centos6-x86_64-server.rpm --nodeps --nosignature
数据库安装好了之后,需要给数据库初始化密码,首先启动mysql:
service mysql start
mysql
然后在命令提示符下(mysql>
或者MariaDB [(none)]>
)设置密码
set password for 'root'@'localhost'=password('Akl@qwe123');
quit;
重启mysql
service mysql restart
重新登录
mysql -u root -p
mariadb 相关配置
配置MariaDB的字符集
查看/etc/my.cnf文件内容,其中包含一句!includedir /etc/my.cnf.d 说明在该配置文件中引入/etc/my.cnf.d 目录下的配置文件。
1)使用vi server.cnf命令编辑server.cnf文件,在[mysqld]标签下添加
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
如果/etc/my.cnf.d 目录下无server.cnf文件,则直接在/etc/my.cnf文件的[mysqld]标签下添加以上内容。
2)用vi client.cnf命令编辑/etc/my.cnf.d/client.cnf文件,在[client]标签下添加
default-character-set=utf8
3)用vi mysql-clients.cnf命令编辑/etc/my.cnf.d/mysql-clients.cnf文件,在[mysql]标签下添加
default-character-set=utf8
配置完成后 service mysql restart
或者systemctl restart mariadb
重启服务。
进入到数据库查看字符设置。
show variables like "%character%";
show variables like "%collation%";
image.png
添加用户,设置权限
创建用户命令:
create user username@localhost identified by 'password';
授予外网登陆权限:
grant all privileges on *.* to username@'%' identified by 'password' with grant option;
flush privileges; -- 推送设置到内存或重启服务器也行
-- grant all privileges on *.* to root@'%' identified by 'Akl@qwe123' with grant option;