mysql常用操作

碰到提示 ERROR 1067 (42000): Valeur par défaut invalide pour 原因可能是输入中有中文, 会出现乱码 解决方法可以命令行中输入 set names utf8; 建表时标注 charset=utf8

mysqli操作

通常不需要使用 mysqli_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。参见释放资源。( Note:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysqli_close() 关闭了。) 注: mysqli_close() 不会关闭由 mysqli_connect() 建立的持久连接。 由于 PHP4 Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此,很少需要手工释放内存。

my.ini 把语言由法语改为英语

lc-messages=fr_FR lc-messages=en_US

显示所有字符设置

show variables like'%char%';

永久设置字符集规则的方法

1、从my.ini下手
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8

以上3个section都要加default-character-set=utf8

2、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。
CREATE TABLE `tablename4` (
。。。
) ENGINE=MyISAM DEFAULT CHARSET=utf8
3、网页xxx.php保存时选择utf8编码,页头最好加上
header('conten-type:text/html;charset=utf-8');

my.ini加了三个设置后重启报错了,于是把mysqld的charset删掉,又好了。还不了解是什么原因

MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也 会不会对已有的utf8编码读取产生任何问题。当然,为了节省空间,一般情况下使用utf8也就够了。

cmd下启动和关闭

net start mysql net stop mysql

linux下的mysql

1、systemctl start mysqld #启动MySQL

获取安装时的临时密码 grep 'temporary password' /var/log/mysqld.log

删除原来安装过的mysql残留的数据 rm -rf /var/lib/mysql

修改密码 set password=password("yourpassword");

设置 validate_password_policy 的全局参数为 LOW set global validate_password_policy=LOW;

关于 mysql 密码策略相关参数;

1)、validate_password_length 固定密码的总长度;

2)、validate_password_dictionary_file 指定密码验证的文件路径;

3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;

4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;

5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

关于 validate_password_policy 的取值:

LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

设置安全选项: mysql_secure_installation

2、关闭MySQL systemctl stop mysqld

3、重启MySQL systemctl restart mysqld

4、查看MySQL运行状态 systemctl status mysqld

5、设置开机启动 systemctl enable mysqld

6、关闭开机启动 systemctl disable mysqld

7、配置默认编码为utf8: vi /etc/my.cnf #添加 [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'

其他默认配置文件路径:

配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid

8、查看版本 select version();

4.1.显示数据库列表   show databases;

4.2.创建、删除数据库   create database 数据库名;

drop database 数据库名;

4.3.显示库中的数据表   use mysql;

show tables;

4.4.显示数据表结构   describe 数据表名;

5.1.导出所有数据库   语法:mysqldump -u用户名 -p密码 --all-databases >导出路径

举例:mysqldump -uroot -p123456 --all-databases >/tmp/all.sql

5.2.导出指定数据库   语法:mysqldump -u用户名 -p密码 --databases 数据库名>导出路径

举例:mysqldump -uroot -p123456 --databases testdatebase >/tmp/testdatebase.sql

5.3.导出指定数据库的结构(无数据)   语法:mysqldump -u用户名 -p密码 --no-data --databases 数据库名>导出路径

举例:mysqldump -uroot -p123456 --no-data --databases testdatebase >/tmp/testdatebase_no_data.sql

5.4.导出指定数据库中的指定表   语法:mysqldump -u用户名 -p密码 --databases 数据库名 --tables 数据表名>导出路径

举例:mysqldump -uroot -p123456 --databases testdatebase --tables t_user >/tmp/testdatebase_user.sql

5.5.导出指定数据库中的指定表的结构(无数据)   语法:mysqldump -u用户名 -p密码 --no-data --databases 数据库名 --tables 数据表名>导出路径

举例:mysqldump -uroot -p123456 --no-data --databases testdatebase --tables t_user >/tmp/testdatebase_user_no_data.sql

5.6.导出指定数据库中的指定表,设置查询条件   语法:mysqldump -u用户名 -p密码 --databases 数据库名 --tables 数据表名 --where='条件'>导出路径

举例:mysqldump -uroot -p123456 --databases testdatebase --tables t_user --where='user_no=1'>/tmp/mysql_user_no.sql

5.7.跨服务器备份数据库   将 host1 服务器中的 db1 数据库的所有数据导入到 host2 中的db2数据库中,db2的数据库必须存在否则会报错

(经测试,在mysql5.5版本中,db2存在即可,实际生成数据库名称与db1一致;加上-C参数可以启用压缩传递)

语法:mysqldump --host=host1 -u用户名 -p密码 --databases db1 |mysql --host=host2 -u用户名 -p密码 --databases db2

举例:mysqldump --host=192.168.1.101 -uroot -p123456 -C --databases testdatebase |mysql --host=192.168.3.102 -uroot -p123456 --database testdatebase

5.8.通过 sql 文件导入数据库   语法:mysql -u用户名 -p密码 < 导入路径   举例:mysql -uroot -p123456 < /tmp/testdatebase.sql

相关推荐

评论

标签云

最新评论文章