启动sonarqube 6.7.1 报下面的错误: 2018.01.24 10:10:56 WARN app[][o.e.t.n.Netty4Transport] exception caught on transport layer [[id: 0x146de8cb, L:/127.0.0.1:57099 – R:/127.0.0.1:9001]], closing connection java.io.IOException: 远程主机强迫关闭了一个现有的连接。 at sun.nio.ch.SocketDispatcher.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(Unknown Source) at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) at sun.nio.ch.IOUtil.read(Unknown Source) at sun.nio.ch.SocketChannelImpl.read(Unknown Source) at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:433) at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1100) at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at java.lang.Thread.run(Unknown Source) 根据sonar.properties里面的注释,mysql版本不能低于5.6, 而我装的mysql版本5.5,升级mysql到5.7版本,问题解决。 另外如果联接数据库的帐号密码错误,也会报这个错。 from:https://blog.csdn.net/xjj1314/article/details/79150329
View Details一、更改my.cnf配置文件 1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-tables,然后保存并退出 3.重启mysql服务:service mysqld restart 二、更改root用户名 1.重启以后,执行mysql命令进入mysql命令行 2.修改root用户密码 1 2 3 MySQL> UPDATE mysql.user SET Password=PASSWORD('新密码') where USER=’root'; MySQL> flush privileges; MySQL> exit 3.把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart 好了,下面就可以用root新的密码登录了! 以上所述是小编给大家介绍的Mysql 忘记root密码处理办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持! from:https://www.jb51.net/article/100925.htm
View Details一. 创建用户 命令:
1 |
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; |
说明: username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 例子:
1 2 3 4 5 |
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; CREATE USER 'pig'@'%' IDENTIFIED BY ''; CREATE USER 'pig'@'%'; |
二. 授权: 命令:
1 |
GRANT privileges ON databasename.tablename TO 'username'@'host' |
说明: privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.* 例子:
1 2 |
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; GRANT ALL ON *.* TO 'pig'@'%'; |
注意: 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
1 |
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; |
三.设置与更改用户密码 命令:
1 |
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); |
如果是当前登陆用户用:
1 |
SET PASSWORD = PASSWORD("newpassword"); |
例子:
1 |
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); |
四. 撤销用户权限 命令:
1 |
REVOKE privilege ON databasename.tablename FROM 'username'@'host'; |
说明: privilege, databasename, tablename:同授权部分 例子:
1 |
REVOKE SELECT ON *.* FROM 'pig'@'%'; |
注意: 假如你在给用户’pig’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig’@’%’,则在使用REVOKE SELECT ON *.* FROM 'pig’@’%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig’@’%';则REVOKE SELECT ON test.user FROM 'pig’@’%';命令也不能撤销该用户对test数据库中user表的Select权限。 具体信息可以用命令SHOW GRANTS FOR 'pig’@’%'; 查看。 五.删除用户 命令:
1 |
DROP USER 'username'@'host'; |
作者:hoxis 链接:https://www.jianshu.com/p/d7b9c468f20d 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
View Details1.安装mysql的yum源 a.下载配置mysql的yum源的rpm包 根据上面3张图片中的操作下载下来的rpm文件可以通过如下命令获取:
1 |
wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm |
b.安装用来配置mysql的yum源的rpm包
1 |
rpm -Uvh mysql57-community-release-el6-9.noarch.rpm |
或
1 |
yum localinstall -y mysql57-community-release-el6-9.noarch.rpm |
安装成功后在/etc/yum.repos.d/下会多出几个mysql的yum源的配置,如下: 2.安装mysql
1 |
yum install mysql-community-server |
3.开启mysql服务
1 |
service mysqld start |
mysql安装成功后创建的超级用户’root’@’localhost’的密码会被存储在/var/log/mysqld.log,可以使用如下命令查看密码
1 |
grep 'temporary password' /var/log/mysqld.log |
使用mysql生成的'root’@’localhost’用户和密码登录数据库,并修改 其密码,具体命令
1 |
shell> mysql -uroot -p |
1 |
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; |
4.开启远程连接 设置iptables开放3306端口
1 |
vi /etc/sysconfig/iptables |
如果此时使用telnet远程登录mysql服务会出错: 解决此问题的方法为: 将localhost改成% 进入mysql的BIN目录 代码如下 mysql -u root -p mysql>use mysql; mysql>update user set host =’%’where user =’root’; mysql>flush privileges; 具体分析 1、在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为’%’。 代码如下 mysql> mysql>use mysql; mysql>select 'host' from user where user=’root'; #查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) 代码如下 mysql>update user set host = '%' where user =’root'; #修改host值(以通配符%的内容增加主机/IP地址,当然也可以直接增加某个特定IP地址,如果执行update语句时出现ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 错误,需要select host from […]
View Details引言 最近博客又抽风了,打开主页后提示 Error Establishing a Database Connection。仔细想想,应该就是数据库服务器 mariadb 挂了;以前也遇到过类似的问题。经过分析日志,并结合网上的资料最终解决了问题。 日志 以下是 mariadb 服务器挂掉时的比较关键的日志信息,从下面的日志信息中,我们可以很容易地看出由于内存不足,从而导致数据库服务器启动时崩溃。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 160919 2:47:12 InnoDB: Waiting for the background threads to start 160919 2:47:13 Percona XtraDB (http://www.percona.com) 5.5.46-MariaDB-37.6 started; log sequence number 352718445 160919 2:47:13 [ERROR] mysqld: Out of memory (Needed 128917504 bytes) 160919 2:47:13 [Note] Plugin 'FEEDBACK' is disabled. 160919 2:47:13 [Note] Server socket created on IP: '0.0.0.0'. 160919 2:47:13 [Note] Event Scheduler: Loaded 0 events 160919 2:47:13 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.47-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server 160919 02:47:35 mysqld_safe Number of processes running now: 0 160919 02:47:35 mysqld_safe mysqld restarted 160919 2:47:35 [Note] /usr/libexec/mysqld (mysqld 5.5.47-MariaDB) starting as process 28614 ... 160919 2:47:35 InnoDB: The InnoDB memory heap is disabled 160919 2:47:35 InnoDB: Mutexes and rw_locks use GCC atomic builtins 160919 2:47:35 InnoDB: Compressed tables use zlib 1.2.7 160919 2:47:35 InnoDB: Using Linux native AIO 160919 2:47:35 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137756672 bytes) failed; errno 12 160919 2:47:35 InnoDB: Completed initialization of buffer pool 160919 2:47:35 InnoDB: Fatal error: cannot allocate memory for the buffer pool 160919 2:47:35 [ERROR] Plugin 'InnoDB' init function returned error. 160919 2:47:35 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 160919 2:47:35 [ERROR] mysqld: Out of memory (Needed 128917504 bytes) 160919 2:47:35 [ERROR] mysqld: Out of memory (Needed 96681984 bytes) 160919 2:47:35 [ERROR] mysqld: Out of memory (Needed 72499200 bytes) 160919 2:47:35 [Note] Plugin 'FEEDBACK' is disabled. 160919 2:47:35 [ERROR] Unknown/unsupported storage engine: InnoDB 160919 2:47:35 [ERROR] Aborting |
解决 在使用 free -m 查看内存信息时,发现 swap 分区大小为 0。难怪说数据库服务器无法启动呢,在内存不够用的情况下,又无法使用 swap 分区,自然崩溃了。由于 VPS 使用了 SSD,性能自然不错。下面我们给服务器系统 CentOS 7 添加 1024M 的 swap 分区,采用的方法是创建一个 swap 文件: 使用下面的命令创建 swapfile:
1 2 |
# 1048576 = 1024 * 1024 dd if=/dev/zero of=/swapfile bs=1024 count=1048576 |
使用下面的命令配置 swap 文件:
1 |
mkswap /swapfile |
接下来,使用下面的命令立即启用 swapfile,这样就不用等到下次重启时自动启用:
1 |
swapon /swapfile |
最后,我们在 /etc/fstab 中添加下面一行,这样可以在系统下次重启时自动生效创建的 swapfile:
1 |
/swapfile swap swap defaults 0 0 |
使用 cat /proc/swaps 或 free -m 查看 swapfile 的生效情况,如下图所示: 在完成上面的步骤后,我们还可以在 /etc/my.cnf 配置文件中添加一些配置信息,降低 mariadb 资源需求,具体的配置请参考文末给出的链接。 启动 启动 apache 服务器:systemctl start httpd.service; 启动 mariadb 服务器:systemctl start mariadb.service。 启动完成后,再次打开网站主页,bingo,问题解决了! 总结 低配 VPS 最好还是要多增加 swap 分区大小,尤其对于使用 SSD 的 VPS 而言,swap […]
View Details具体报错如下: Table '.\Tablename\posts' is marked as crashed and should be repaired 提示说论坛的帖子表posts被标记有问题,需要修复。我记得以前也出现过类似的问题,但是只要点击Phpmyadmin上的repair按纽就自动修复了,但是这次很绝,什么都没有.于是赶快上网查找原因。最终将问题解决。解决方法如下: 找到mysql的安装目录的bin/myisamchk工具,在命令行中输入: myisamchk -c -r ../data/tablename/posts.MYI 然后myisamchk 工具会帮助你恢复数据表的索引。好象也不用重新启动mysql,问题就解决了。 问题分析: 1、 错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。 还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都有可能导致 MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。 2、问题解决办法。 当你试图修复一个被破坏的表的问题时,有三种修复类型。如果你得到一个错误信息指出一个临时文件不能建立,删除信息所指出的文件并再试一次--这通常是上一次修复操作遗留下来的。 这三种修复方法如下所示: % myisamchk --recover --quick /path/to/tblName % myisamchk --recover /path/to/tblName % myisamchk --safe-recover /path/to/tblName 第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题。 检查和修复MySQL数据文件 如果上面的方法无法修复一个被损坏的表,在你放弃之前,你还可以试试下面这两个技巧: 如 果你怀疑表的索引文件(*.MYI)发生了不可修复的错误,甚至是丢失了这个文件,你可以使用数据文件(*.MYD)和数据格式文件(*.frm)重新生 成它。首先制作一个数据文件(tblName.MYD)的拷贝。重启你的MySQL服务并连接到这个服务上,使用下面的命令删除表的内容: mysql> DELETE FROM tblName; 在 删除表的内容的同时,会建立一个新的索引文件。退出登录并重新关闭服务,然后用你刚才保存的数据文件(tblName.MYD)覆盖新的(空)数据文件。 最后,使用myisamchk执行标准的修复(上面的第二种方法),根据表的数据的内容和表的格式文件重新生成索引数据。 如果你的表的 格式文件(tblName.frm)丢失了或者是发生了不可修复的错误,但是你清楚如何使用相应的CREATE TABLE语句来重新生成这张表,你可以重新生成一个新的.frm文件并和你的数据文件和索引文件(如果索引文件有问题,使用上面的方法重建一个新的)一 起使用。首先制作一个数据和索引文件的拷贝,然后删除原来的文件(删除数据目录下有关这个表的所有记录)。 启动MySQL服务并使用当初的CREATE TABLE文件建立一个新的表。新的.frm文件应该可以正常工作了,但是最好你还是执行一下标准的修复(上面的第二种方法)。 为了不冒失修复,故采取保守做法,我们知道 MySQL 一个高效的管理工具便是 PhpMyAdmin,而在该管理软件中就包含了对表的检查、分析、修复、优化功能,比起网上提供的含糊命令行来说更安全更简便。 通过实践,在使用检查表功能后确实发现了问题,之后使用修复功能进行了修复,反馈结果每个表都已经 ok,再执行一次优化,重新测试访问网站终于恢复了正常。一场灾难就此避免…… from:https://www.cnblogs.com/hakuci/archive/2012/03/20/2407723.html
View Details目录 mysqladmin命令 UPDATE user 语句 SET PASSWORD 语句 root密码丢失的情况(待验证) mysqladmin命令(回目录) 格式如下(其中,USER为用户名,PASSWORD为新密码): mysqladmin -u USER -p password PASSWORD 该命令之后会提示输入原密码,输入正确后即可修改。 例如,设置root用户的密码为123456,则 mysqladmin -u root -p password 123456 UPDATE user 语句(回目录) 这种方式必须是先用root帐户登入mysql,然后执行: UPDATE user SET password=PASSWORD('123456′) WHERE user=’root'; FLUSH PRIVILEGES; SET PASSWORD 语句(回目录) 这种方式也需要先用root命令登入mysql,然后执行: SET PASSWORD FOR root=PASSWORD('123456'); root密码丢失的情况(回目录) 使用 MySQL 自带的一个工具"MySQL GUI Tools",我一直用的是5.0版本的。 在安装目录中运行一个程序 MySQLSystemTrayMonitor.exe,运行完后在系统托盘会出现图标。如果MySQL服务尚未安装,则不会出现,可先通过Action>Manage MySQL Instances 先配置和安装服务。如果已经安装服务,鼠标右键点击后,会出现"Configure Instance"的菜单。点击后出现如下MySQL Administrator窗口: 假如原来的服务配置都正常的情况下,选中左侧列表中的“启动变量”,并在相应的右侧标签中选择“安全”,勾选“禁用grant表”,然后“应用更改”。 并回到左侧的“服务器控制”,和右侧相应的“开始/停止服务”标签,点击启动服务。此时,连接mysql已经不需要用户名和密码了,你可以修改root密码。 from:https://www.cnblogs.com/jyginger/archive/2011/04/27/2030017.html
View Details1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 1 [root@10-4-14-168 html]# chkconfig iptables off 3:配置CentOS 6.0 第三方yum源(CentOS默认的标准源里没有nginx软件包) 1 #wget http://www.atomicorp.com/installers/atomic 1 #sh ./atomic 1 #yum check-update 4:安装开发包和库文件 1 2 3 4 #yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel 5:卸载已安装的apache、mysql、php 1 2 3 # yum remove httpd # yum remove mysql # yum remove php 6:安装nginx 1 […]
View Detailshttp://blog.sina.com.cn/s/blog_66519bd80102v3ct.html 1、查询是否锁表 show OPEN TABLES where In_use > 0; 2、查询进程 show processlist 查询到相对应的进程===然后 kill id 补充: 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; from:http://blog.csdn.net/chruan/article/details/51955775
View Details执行sql如下:
1 2 3 4 5 6 |
CREATE TABLE `qcloud_sms_template` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `ctime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
执行结果:
1 2 |
ERROR 1067 (42000): Invalid default value for 'ctime' |
这段sql在本机测试没问题,放到开发环境下就报错了。 很奇怪,搜索一番后,发现DATETIME类型只支持mysql 5.6.5+. 解决方法:
1 2 |
将DATETIME改为TIMESTAMP。 |
参考资料: http://stackoverflow.com/questions/168736/how-do-you-set-a-default-value-for-a-mysql-datetime-column/10603198 from:https://www.liudon.org/1288.html
View Details