mysql数据库报错,mysql工作笔记

背景:

MySQL有关1042 Can’t get hostname for your address的题目分析解决进度

1 mysql  十4二 can’t get hostname for your address消除方式

[TOC]

1.etc下的hosts文件有:     127.0.0.1   localhost

 

MySQL常用函数

CONCAT          将多个字段内容连接在一起        select CONCAT(title,know) from my_course where id = 1
            (高中语文诗二首2,3,4,5,6,16,24)

CONCAT_WS       将多个字段用指定字符连接在一起     select CONCAT_WS('|',title,know,id) from my_course where id = 1
            (高中语文诗二首|2,3,4,5,6,16,24,|1)

INSERT          截取字段中的某一截       select INSERT(title,1,3,'---') from my_course where id = 1
            (---文诗二首)

LPAD            将字段补充到指定长度          select LPAD(title,20,'-') from my_course where id = 1
            (-------------高中语文诗二首)

RPAD            将字段补充到指定长度          select RPAD(title,20,'-') from my_course where id = 1
            (高中语文诗二首-------------)

LTRIM(s)            去掉字符串s开始处的空格
RTRIM(s)            去掉字符串s结尾处的空格
TRIM(s)             去掉字符串s开始和结尾处的空格
TRIM(s1 FROM s)     去掉字符串s中开始处和结尾处的指定字符
REPEAT(s,n)         将字符串s重复n次
REPLACE(s,s1,s2)    将字符串s2替代字符串s中的字符串s1     select REPLACE(title,'语文','-') from my_course where id = 1

二.MySQL的my.ini配置文件:     [mysqld] 节点下已经插足以下两行代码

[Comment 1]

网上好友的建议是:

命令行连接

mysql -h 192.168.0.60 -u dearedu -p -P 3306

 

 前同事企鹅上边说她安装的mysql
伍.5,发现用mysql客户端远程连接的时候,报十4二-Can’t get hostname for your
address错误,不过权限已经grant了还要grant成功了。

壹在布置信息中添加 忽略主机名的拜会方式和忽略证明大小写那多个代码,再重启mysql服务

PDO连接方法

header('content-type: text/html; charset=utf8');

try {
    $pdo = new PDO('mysql:host=localhost; dbname=work', 'root', 'root', array(1002 => 'set names utf8'));
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}

$result = $pdo->query('select * from city');

$one = $result->fetch(PDO::FETCH_ASSOC);

$ls = $result->fetchAll(PDO::FETCH_ASSOC);

        skip-name-resolve #忽视主机名的办法访问

 这么些报错的意思是“您的地点不能获得主机名”,我就悟出了skip-name-resolve参数。

我做了,没用

翻开定时备份数据库

创建shell文件
    mkdir /home/backup/backup.sh
编辑shell文件
    vi /home/backup/backup.sh
        #!/bin/bash
        currentdate=`date +%Y%m%d`
        mysqldump -udearedu -ppower123321 member > /home/backup/member_${currentdate}.sql
赋权限给shell文件
    chmod u+x /home/backup/backup.sh
添加计划任务
    crontab -e
    插入内容 */1 * * * * /home/backup/backup.sh

        lower_case_table_names=1 #马虎数据库表名大小写 

合法文书档案: 

贰 检查端口是不是相同

数码的导入导出

1. 导出
1.导出整个数据库           
        mysqldump -u root -p wyapi > e:/abc.sql
2.导出一个表              
        mysqldump -u root -p wyapi user > e:/abc.sql
3.导出一个数据库结构       
        mysqldump -u root -p -d --add-drop-table wyapi > e:/abc.sql
4.导出数据库wyapi中表notes的前100条数据
        mysqldump -uroot -proot wyapi notes --where "1=1 limit 100" --lock-all-table > e:/abc.sql
2. 导入
    mysql -uroot -proot
    use test
    source e:/abc.sql
C:\phpstudy\MySQL\bin>mysqldump.exe -uroot -proot whty_gaozhong wl_exam_question > c:\wl_exam_question.sql

只导数据
C:\phpstudy\MySQL\bin>mysqldump -t whty_gaozhong -uroot -proot --tables wl_exam_question > c:\wl_exam_question.sql

3.mysql 服务1度运维成功

–skip-name-resolve

防火墙的入站规则中 五个mysql 的端口都以330陆,2个专用,二个域

mysql慢查询设置

  • 翻开慢查询时间 (暗中同意10s)
    show variables like “long_query_time”;
  • 查阅慢查询配置意况
    show status like “%slow_queries%”;
  • 翻开慢查询日志路径
    show variables like “%slow%”;
  • 实际安插如下:

log-slow-queries=F:phpStudyMySQLdataXB-20170514HRTA-slow.log (路劲)
long_query_time=1 (时间)
log-queries-not-using-indexes (记录下没有使用索引的查询)

 

Use IP addresses rather than host names when creating grant table
entries. This option can be useful if your DNS does not work.

除此以外mysql的布置文件中的七个端口也都以330陆,3个客户端,二个mysql监听的tcp/ip
端口

mysql数据库报错,mysql工作笔记。mysql存款和储蓄引擎的分别

  • MYISAM 暗中同意存款和储蓄引擎
    表锁,顾而并发倒霉
    全文检索
    减掉编写制定
    适合大量的select
    保存记录的行数,count(*)更高效

  • InnoDB
    行锁,顾而并发好
    事务
    外键
    顺应大量的inert、update

 

 

3检查hosts 是否有 127.0.0.1 localhost

mysql字段类型

日期和时间数据类型
date        3字节,日期,格式:2014-09-18
time        3字节,时间,格式:08:42:30
datetime    8字节,日期时间,格式:2014-09-18 08:42:30
timestamp   4字节,自动存储记录修改的时间
year        1字节,年份

数值数据类型
tinyint         1字节,范围(-128~127)
smallint        2字节,范围(-32768~32767)
mediumint       3字节,范围(-8388608~8388607)
int             4字节,范围(-2147483648~2147483647)
bigint          8字节,范围(+-9.22*10的18次方)
上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如: tinyint unsigned的取值范围为0~255。

浮点型
float(m, d)     4字节,单精度浮点型,m总个数,d小数位
double(m, d)    8字节,双精度浮点型,m总个数,d小数位
decimal(m, d)   decimal是存储为字符串的浮点数
我在MySQL中建立了一个表,有一列为float(5, 3);做了以下试验:
1.插入123.45678,最后查询得到的结果为99.999;
2.插入123.456,最后查询结果为99.999;
3.插入12.34567,最后查询结果为12.346;
所以,在使用浮点型的时候,还是要注意陷阱的,要以插入数据库中的实际结果为准。

字符串数据类型
char(n)     固定长度,最多255个字符
varchar(n)  可变长度,最多65535个字符
tinytext    可变长度,最多255个字符
text        可变长度,最多65535个字符
mediumtext  可变长度,最多2的24次方-1个字符
longtext    可变长度,最多2的32次方-1个字符

1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3.超过char和varchar的n设置后,字符串会被截断。
4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。
5.char在存储的时候会截断尾部的空格,varchar和text不会。
6.varchar会使用1-3个字节来存储长度,text不会。

更多优化内容如下:http://www.jb51.net/article/55853.htm

问题:

–skip-name-resolve

反省也有

mysql开启远程连接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;

Navicat 连接mysql 报1042错误 can’t get hostname for your address

997755.com澳门葡京 ,Do not resolve host names when checking client connections. Use only IP
numbers. If you use this option, all Host column values in the grant
tables must be IP numbers or localhost. See Section 7.7.11, “How MySQL
Uses DNS”.

可那一个都没能化解自个儿的难点。

left join、inner join区别

left join:
    以左表为主,将左表全部记录取出来,右表只取出符合条件的记录,不符合条件的记录设为NUll,同时此时左表的任何不空的判断都无效,右边的不为空也无效
    取并集

inner join:
    取交集,属于任何条件有效

104二 can’t get hostname for your address消除办法
vim /etc/my.cnf

在[mysqld]节点下增加产量或修改如下两行
skip-name-resolve

终端 连接mysql 报1042错误 can’t get hostname for your address

 

终极百度知道网民“醉沙专属”的答应消除了自作者的标题,上边附上她的原话

马虎主机名的方法访问

lower_case_table_names=1

 

mysql> show variables like '%skip_name_resolve%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| skip_name_resolve | ON   |
+-------------------+-------+
1 row in set (0.00 sec)

mysql> set global skip_name_resolve=0;
ERROR 1238 (HY000): Variable 'skip_name_resolve' is a read only variable
mysql> 

忽略数据库表名大小写

原因:

 

后天也赶上那几个标题,搞了壹午夜,各样烦恼,壹开端很欢天喜地阅览楼主也在问那几个题材,可惜,看到的拍卖措施都是老大,在mysqld下扩充skip-name-resolve,话说那个布局,从官方文档看,就只允许用ip登录了,小编安插之后,连localhost都无法用。

有相当大可能率引发的因由有:VPN工具 ,代{过}{滤}理工科具,网络电游加快,等

战败了,看来是惟有修改my.cnf了

后来,小编尝试那样做,先看下hosts文件,看看有未有标题,然后tracert
127.0.0.1
,看能还是不可能得逞回调本机,成功以往,运维netsh winsock
reset
,重启电脑,再一次尝试三次,难题一蹴而就了~

貌似有的第二方提供的网络连接工具,会简单导致那地点的难点。

 

瞩望您也能称心如意消除难点,这几个难题,在网上找的答案真心废!

譬如说:新浪加紧,假设关机前不脱离的话,就有机率发生这么的标题。

在[mysqld]节点下修改

 

skip-name-resolve
#忽略主机名的方式访问
lower_case_table_names=1
#忽略数据库表名大小写

聊到底,谢谢醉沙专属帮笔者化解了难点!

杀鸡取卵方案:

 

1.用管理员运营cmd

2.执行     netsh winsock reset

三.重启电脑

 

2 2003 – can’t connect to MySQL server on ‘localhost; (10061)

重启MySQLD process即可。

因为没有启用mysql的服务,那样来做:

 

右键总结机–管理—服务,左边列表找到MYSQL5⑥,然后双击,在劳务地方中运维它

 

3 NumberFormatException

[Comment 2]

字符串不能够转换来适当的一种数值类型时就会出现这几个可怜

前同事企鹅留言:

例如将null用parseInt来转换,就会报那几个荒唐

mysql -h 192.168.1.101 -u root -p

4

 

访问不了,笔者本地的mysql.1玖二.168.壹.10一是本土ip地址。

grant all privileges on *.* to ‘hive’@’1九二.16八.一.拾1’ identified by
‘hive’ with grant option;正是报接二连三不上,权限难点,怎么消除。

查阅官方文书档案:

hostname

Variable Name
hostname

Variable Scope
Global

Dynamic Variable
No

  Permitted
Values

Type string

The server sets this variable to the server host name at startup.

 

[html] 
mysql> show variables like '%hostname%';  
+---------------+-------------------------------------------+  
| Variable_name | Value                                     |  
+---------------+-------------------------------------------+  
| hostname      | xxxxx.china.online.xx.com |  
+---------------+-------------------------------------------+  
1 row in set (0.00 sec)  

mysql> set global hostname='xxxxx2.china.online.xx.com';  
ERROR 1238 (HY000): Variable 'hostname' is a read only variable  
mysql>   

 

曲折了,唯有修改my.cnf了,在mysqld选项上边

 

[mysqld]
# 注释掉参数即可,mysql直接用本机ip不能访问
# hostname

 

然后重启mysqld 服务即可。

 

Cant get hostname for your
address的标题浅析消除进度 [Comment 1] 前同事企鹅上边说她安装的mysql
五.5,发现用mysql客户端远程连接的时候…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website