linux下的shell操作mysql
(1)MySQL的启动
重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
查看状态: > /etc/rc.d/init.d/mysqld status
显示stop,未运行:>/etc/rc.d/init.d/mysqld restart
(2)mysql数据库导入、导出
1.导出整个数据库
(3)MySQL数据文件目录
MySQL默认的数据文件存储目录为/var/lib/mysql,MySQL配置文件:/etc/my.cnf,MySQL启动脚本:/etc/init.d/mysqld。
(4)Linux下的shell操作数据库的例子
1.shell文件内容:
- #!/bin/bash
- HOSTNAME="11.8.8.87"
- PORT="3306"
- USERNAME="root"
- PASSWORD="root"
- DBNAME="testa"
- TABLENAME="test"
- use_db_sql="use ${DBNAME}"
- mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${use_db_sql}"
- insert_sql="insert into ${TABLENAME} values('7','mike','123456')"
- mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
主机地址:11.8.8.87 端口:3306 数据库:testa 表:test
2.test表结构:

3.我这里命名shell文件名为:mysqltestshell,在windows上编辑后上传到linux服务器上,
修改权限:chmod +x mysqltestshell
执行./mysqltestshell,
报错:-bash: ./mysqltestshell: /bin/bash^M: bad interpreter: No such file or directory
解决办法:
vi mysqltestshell
然后用命令 :set ff?
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.
4.运行结果
请自觉忽略乱码情况(此处只是测试),可以看到新增了一条记录
- mysql> select * from test;
- +------+----------+----------------------+
- | t_id | username | password |
- +------+----------+----------------------+
- | 1 | 娴璇 | 娴璇瀵鐮 |
- | 2 | ?? | 娴璇瀵鐮 |
- | 3 | ?? | 忙碌?猫炉?氓炉?莽聽? |
- | 4 | ?? | ???? |
- | 5 | ?? | ???? |
- | 6 | ?? | ???? |
- | 7 | mike | 123456 |
- +------+----------+----------------------+
- 7 rows in set (0.00 sec)
----------------------------------------------------------补充----------------------------------------------------------------
mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。
#!/bin/bash
HOSTNAME="192.168.111.84" #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD=""
DBNAME="test_db_test" #数据库名称
TABLENAME="test_table_test" #数据库中表的名称
#创建数据库
create_db_sql="create database IF NOT EXISTS ${DBNAME}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
#创建表
create_table_sql="create table IF NOT EXISTS ${TABLENAME} ( name varchar(20), id int(11) default 0 )"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"
#插入数据
insert_sql="insert into ${TABLENAME} values('billchen',2)"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
#查询
select_sql="select * from ${TABLENAME}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
#更新数据
update_sql="update ${TABLENAME} set id=3"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
#删除数据
delete_sql="delete from ${TABLENAME}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
(4)mysql,test数据库的初始化
执行:/usr/bin/mysql_install_db,可以在/var/lib/mysql里看到数据库的目录。
(5)修改mysql登录密码
若忘记密码:
# /etc/init.d/mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
若记得密码,重新设置密码:
#mysql -u root -p
登录后:
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
取消登录密码:
mysql> update user set password='' where user='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
(6)普通用户无法登录
taiyang用户登录时,出现提示:ERROR 1045 (28000): Access denied for user 'taiyang'@'localhost' (using password: NO)
- service mysqld stop
- mysqld_safe --user=taiyang --skip-grant-tables --skip-networking &
然后taiyang用户就能正常登录了。
linux下的shell操作mysql的更多相关文章
- Linux下使用Python操作MySQL数据库
安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourcef ...
- Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...
- Linux下C语言操作MySQL数据库
MySQL是Linux系统下广泛使用的开源免费数据库,是Linux应用程序数据存储的首选. Ubuntu下安装 […]
- Linux下通过shell进MySQL执行SQL或导入脚本
这条命令表示通过用户名和密码执行shell然后在shell里面执行一个建表语句: USER="root" PASS="root" mysql -u $USER ...
- Linux下使用OTL操作mysql数据库
首先重点推荐介绍otl介绍及用法的文章:http://www.cnblogs.com/fnlingnzb-learner/p/5835560.html 一.编写代码 注:以下代码来自OTL示例,略有改 ...
- Linux下使Shell 命令脱离终端在后台运行
--Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
- Shell操作mysql数据库
From : http://www.2cto.com/database/201306/220570.html Shell操作mysql数据库 mysql -hhostname -Pport -u ...
- [转]linux下完全备份数据库mysql
#配置参数 USER=vimer_admin #数据库用户名 PASSWORD=dreamfly123 #数据库用户密码 DATABASE=vimer #数据库名称 WEBMASTER=@qq.com ...
随机推荐
- 阿里技术嘉年华-aDev内容感悟
之前参见了ADC然后要求在组内做了个简单的分享,因为写这个PPT的时候ADC的资料还没分享,所以仅凭自己记忆写的一点感悟罢了. PPT下载
- JUnit4忽略(Ignore)测试实例
这种“忽略”是指方法还没有准备好进行测试,JUnit引擎会绕过(忽略)这个方法. import org.junit.*; /** * JUnit Ignore Test * @author yiiba ...
- Lua------------------unity关于lua的使用
关于Lua在Unity 中的使用 对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http: ...
- (转)BT1120接口及协议
因为项目上用到的是 海思3536的bt1120接口对接 FPGA.项目上用到的是 1920 x 1080,60Hz.逐隔. 上图看到, BT1120的接口 有 16根 数据线 和 一根 时钟线. 下面 ...
- ubuntu14.04_64位安装tensorflow-gpu
第一步(可直接跳到第二步):安装nvidia显卡驱动 linux用户可以通过官方ppa解决安装GPU驱动的问题.使用如下命令添加Graphic Drivers PPA: sudo add-apt-re ...
- vim介绍/vim颜色显示和移动光标/ vim一般模式下移动光标/ vim一般模式下复制、剪切和粘贴
5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制.剪切和粘贴 vim 是vi的升级版本 vim 带有颜色显示 安装vim : y ...
- js scrollIntoViewIfNeeded
根据 MDN的描述,Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内. 而Element.scrollIntoViewIfNeeded()方法也是用来将不在 ...
- nodejs npm 使用淘宝 NPM 镜像
使用淘宝 NPM 镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像. 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读), ...
- 安卓开发笔记——WebView组件
我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebVie ...
- MongoDB 之 Capped Collection
MongoDB 支持 Capped Collection,一种固定大小的集合,当集合的大小达到指定大小时,新数据覆盖老数据,MongoDB Replica set 中的 oplog 就是 Capped ...