mysql学习总结01 — 配置运行

mysql学习总结01 — 配置运行

[toc]

1. mysql 安装与配置

1.1 Linux-Ubuntu

mysql安装

sudo apt-get update
sudo apt-get install mysql-server mysql-client
sudo netstat -tap | grep mysql # 检查MySQL服务器是否正在运行
sudo /etc/init.d/mysql restart # 如果不能正常运行,手动重启
sudo service mysql restart # 重启服务
sudo apt-get install libapache2-mod-auth-mysql # 添加Apache对mysql支持
sudo apt-get install php5-mysql # 添加php对mysql支持

mysql卸载

sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common # 重要
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P # 清理残留数据

开启远程连接

详见权限管理

mysql> grant all PRIVILEGES on *.* to root@'%' identified by '19931128';
mysql> flush privileges;
netstat -anpt|grep 3306 # 检查3306端口

当前默认监听 127.0.0.1:3306

修改 127.0.0.1 为当前ip地址

修改 /etc/mysql/my.cnf 文件中 bind-address,将 bind-address=127.0.0.1 修改为本机IP,重启mysql服务

1.2 Linux-CentOS

安装客户端和服务器端

确认mysql是否已安装:

yum list installed mysql*
rpm -qa | grep mysql*

查看是否有安装包:

yum list mysql*

安装mysql客户端:

yum install mysql

安装mysql 服务器端:

yum install mysql-server
yum install mysql-devel

启动、停止设置

数据库字符集设置:

mysql配置文件 /etc/my.cnf中加入 default-character-set=utf8

启动mysql服务:

service mysqld start

/etc/init.d/mysqld start

设置开机启动:

chkconfig --add mysqld

查看开机启动设置是否成功:

chkconfig --list | grep mysql*

停止mysql服务:

service mysqld stop

1.3 macos 下 xampp-mysql 配置

启动服务

/Applications/XAMPP/xamppfiles/xampp start

取消锁定

macos 使用了 Rootlees 对 /usr/bin 操作进行锁定

重启电脑,按住 command+r,终端输入

csrutil disable
reboot

链接mysql

sudo chmod 777 /Applications/XAMPP/bin/mysql
ln -s /applications/xampp/bin/mysql /usr/bin

设置密码

方法1:

格式:mysqladmin -u用户名 -p旧密码 password 新密码

注意:此处-p默认为空,可省略

方法2:

mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;

方法3:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass’);

1.4 windows下mysql的使用

mysql是C/S结构,分服务端(mysqld)和客户端(mysql)

# windows服务端
$ net start mysql
$ net stop mysql

2. 连接mysql

格式: mysql -h主机地址 -P端口 -u用户名 -p用户密码

1. 连接本机mysql

终端进入目录 mysql/bin

mysql -u root -p

注意:用户名前可有空格也可没有空格,密码前必须没有空格

2. 连接到远程主机mysql

mysql -h 192.168.0.1 -u root -p19931128;

3. 退出mysql

mysql> exit;
# 或quit
mysql> \q;

3. SQL数据备份与还原

mysql中提供了专门用于备份SQL的客户端:mysqldump

SQL备份需要备份结构,因此产生的备份文件特别大,不适合特大型数据备份,也不适合数据变换频繁型数据库备份。

三种备份形式:

  1. 整库备份(只需提供数据库名)
  2. 单表备份
  3. 多表备份:数据库后跟多张表

基本语法:

mysqldump -hPup 数据库名 [表1 表2…] > 备份文件地址.sql

mysqldump -hPup -d 数据库名 > 备份文件地址.sql

$ mysqldump -hlocalhost -P3306 -uroot -proot dbDatabase > /home/ubuntu/backup/dbbackup.sql
$ mysqldump -hlocalhost -P3306 -uroot -proot dbDatabase tbStudent tbClass> /home/ubuntu/backup/dbbackup.sql
# 注意:命令行下执行,导出文件默认是存在 /usr/local/mysql/bin/ 目录下
$ mysqldump -u root -p -d –add-drop-table database_name > outfile_name.sql
$ mysqldump -u root -p -d database_name > outfile_name.sql
$ mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
# 注意:-d 如果没有数据,–add-drop-table 在每个create语句前增加一个drop table

mysqldump备份的数据中没有关于数据库本身的操作,都是针对表级别的操作,当进行数据(SQL还原),必须指定数据库

两种还原形式:

1. 使用 mysql 客户端

基本语法:mysql –hPup 数据库 < 文件位置

2. 使用导入数据的SQL指令 (必须先进入到对应的数据库)

基本语法:source SQL文件位置;

3. 复制SQL指令在mysql客户端中粘贴执行(不推荐)

$ mysql –uroot -proot dbTest < /home/ubuntu/backup/dbbackup.sql
mysql> set names utf8; # 设置数据库编码
mysql> source /home/ubuntu/backup/dbbackup.sql;

4. 其他问题

4.1 符号 ` 的使用

使用 "`" 避免和 mysql 关键字冲突,通常用来指明内容为数据库名、表名、字段名

4.2 字符集编码问题

mysql> show variables like 'character_set_%';
mysql> set names utf8;

客户端传入数据给服务端:client: character_set_client

服务端返回数据给客户端:server: character_set_results

客户端与服务端之间的连接:connection: character_set_connection

set names 字符集统一了三层的字符集

代码运行时修改:

① Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

② PHP代码:header("Content-Type:text/html;charset=gb2312");

③ C语言代码:int mysql_set_character_set( MYSQL mysql, char csname);

4.3 编码相关配置文件

my.ini 中修改 default-character-set=gbk

拷贝 /usr/local/mysql/support-files/my-medim.cnf/etc 目录下

client

port        = 3306
socket      = /tmp/mysql.sock
default-character-set   = utf8

mysqld

default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Oracle实例和Oracle数据库(Oracle体系结构)

--==========================================

862
来自专栏张戈的专栏

zabbix agentd客户端插件Shell一键自动安装脚本

这次生产环境上线了多台 Linux 服务器,需要全部纳入 Zabbix 监控范畴,一台一台的去装 Zabbix Agentd 插件那就太苦逼了,所幸 Zabbi...

2895
来自专栏csxiaoyao

mysql 配置总结( linux & macos )

36011
来自专栏LIN_ZONE

远程连接ubuntu mysql出现2003错误 cant connect to mysql(转载)

2.打开my.cnf文件,找到 bind-address = 127.0.0.1 在前面加上#注释掉,如下: #bind-address = 127.0.0....

862
来自专栏Laoqi's Linux运维专列

MySQL调优

4109
来自专栏zhangdd.com

zabbix监控windows agent安装配置

下载地址: https://www.zabbix.com/download_agents 选择windows版本的agent下载

1153
来自专栏云计算教程系列

# 如何在Ubuntu 14.04上使用Bottle Micro Framework部署Python Web应用程序 ##

由于其灵活性和高级功能,Python是一种优秀的Web编程语言。Web框架可以使编程Web应用程序更加简单,因为它们连接了强大的Web界面所需的许多组件。

1281
来自专栏JAVA同学会

MongoDB之分片集群(Sharding)

  分片(sharding)是一个通过多台机器分配数据的方法。MongoDB使用分片支持大数据集和高吞吐量的操作。大数据集和高吞吐量的数据库系统挑战着单一服务的...

1362
来自专栏我和PYTHON有个约会

数据库最大连接数量

在数据库操作过程中,经常会遇到一些非业务逻辑错误,这样的错误要求开发人员对于自己正在操作的硬件软件乃至网络都有一定的了解,这里说说关于数据库最大连接数量的那点事...

902
来自专栏PHP在线

MySQL · 引擎特性 · MySQL内核对读写分离的支持

读写分离的场景应用 随着业务增长,数据越来越大,用户对数据的读取需求也随之越来越多,比如各种AP操作,都需要把数据从数据库中读取出来,用户可以通过开通多个只读实...

1084

扫码关注云+社区