一、KindEditor编辑器调整插入程序代码下拉框顺序
后台里使用的是KindEditor编辑器,网页中也经常使用代码插入,不过我一直用得多的是shell代码插入,因为主要就是一个单独显示以及着色,很少使用其它的选项,但在Kindeditor编辑器里,后台点击插入程序代码后弹出的框里排序是JavaScript第一,导致我每次都要进行下拉选择,如下位置所示图:
偶尔一次也就算了,但用多了就有点烦这个地方了,于是就到官网上去找设置这里的文档: http://kindeditor.net/docs/option.html 但是没有什么收获,看来这里就是写死的东西吧,好像没有解决的办法了。
但正觉得没有办法时,一想能不能改Kindeditor框架的JS源码,审查插入的语言下拉框找到对应的源码select class为ke-code-type,依靠ke-code-type这个关键词在kindeditor-all-min.js文件里找到了如下代码:
KindEditor.plugin("code",function(b){var d=this;d.clickToolbar("code",function(){var f=d.lang("code."),j=d.createDialog({name:"code",width:450,title:d.lang("code"),body:'<div style="padding:10px 20px;"><div class="ke-dialog-row"><select class="ke-code-type"><option value="js">JavaScript</option><option value="html">HTML</option><option value="css">CSS</option><option value="php">PHP</option><option value="pl">Perl</option><option value="py">Python</option><option value="rb">Ruby</option><option value="java">Java</option><option value="vb">ASP/VB</option><option value="cpp">C/C++</option><option value="cs">C#</option><option value="xml">XML</option><option value="bsh">Shell</option><option value="">Other</option></select></div><textarea class="ke-textarea" style="width:408px;height:260px;"></textarea></div>',
找到了这个地方,于是问题也就顺其自然地解决了。不过还有一个问题,调用Kindeditor我们一般可能是调用kindeditor-min.js这个较小的JS文件,我的后台开始也是调用了这个文件,我在这个kindeditor-min.js文件里并没有找到ke-code-type关键词,但我也没再去追究这个问题,我把原来调用kindeditor-min.js这项改成了调用kindeditor-all-min.js文件,修改了上面的select顺序,以达到我的目的。
二、mysql安装中的一些问题解决及OPS服务器运维mysql最佳优化参数配置
在mysql的启动过程中遇到的一些问题及解决办法:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
此项警告是TIMESTAMP类型字段的一些问题,以前在插入一此事TIMESTAMP字段时,这个字段必须要在sql里显式地显示插入的值,很麻烦。 在my.cnf里mysqld中添加:
explicit_defaults_for_timestamp=true
从而关闭 timestamp 这些行为,
[Note] Plugin 'FEDERATED' is disabled...bin/mysqld: Table 'mysql.plugin' doesn't exist
mysql.plugin不存在的原因是因为新安装的mysql服务后,一般需要执行数据库初始化操作 ,从而生成与权限相关的表,先在MY.INI文件中的 [mysqld] 中增加两行
tmpdir="/tmp/mysqltmp"
federated
并确保上面的目录存在并且mysql用户可以制作。因为在执行mysql_install_db时会使用上面的目录,如果目录不存在或权限不够会报错:
bin/mysqld: Can't create/write to file '/tmp/mysqltmp/ibDdkpxo' (Errcode: 2 - No such file or directory)
上述完成后可执行命令
/pathtomysql/bin/mysql_install_db --user=mysql --datadir=/pathtomysql/data --basedir=/pathtomysql
[ERROR]! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
这是mysql启动失败后,留下的一个残留文件/var/lock/subsys/mysql,删除它即可,mysql在出错后重启前最好删除掉data目录下的ib_logfile*文件,我以前也碰到过这种,记得有过这个操作。
以前找过运维要过一份mysql最佳优化配置的参数,运维基本也不用对每台进行处理,拿到这个shell直接执行安装mysql并完成配置,就保存在这里:
#mysql安装前的基础环境准备
#!/bin/bash
yum -y install gcc gcc-c++ autoconf openssl openssl-devel perl-devel perl-ExtUtils-Embed
yum -y install autoconf* automake* zlib* libxml* ncurses ncurses-devel* libgcrypt* libtool*
yum -y install cmake bison libaio readline-devel glibc glibc-devel glib2 glib2-devel libidn libidn-devel
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gd gd-devel mysql-devel
yum -y install libmcrypt libmcrypt-devel mcrypt mhash curl curl-devel bzip2 bzip2-devel e2fsprogs e2fsprogs-devel libevent libevent-devel
#下载mysql5.6.32并进行安装
tar -zxvf mysql-5.6.32.tar.gz
cd mysql-5.6.32
cmake . -DCMAKE_INSTALL_PREFIX=/opt/modules/mysql \
-DMYSQL_DATADIR=/opt/data/mysql/ \
-DMYSQL_UNIX_ADDR=/opt/data/mysql/mysqld.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes \
-DWITH_ZLIB=yes
make && make install
cd ..
#mysql安装成功后的一些基础操作
/usr/sbin/groupadd mysql && /usr/sbin/useradd -g mysql mysql -s /sbin/nologin
\cp -f /opt/modules/mysql/support-files/my-default.cnf /etc/my.cnf
cp /opt/modules/mysql/support-files/mysql.server /etc/init.d/mysqld
chown -R mysql.mysql /opt/modules/mysql
echo "/opt/modules/mysql/lib/mysql" >> /etc/ld.so.conf
echo "/opt/modules/mysql/lib/" >> /etc/ld.so.conf
ln -s /opt/modules/mysql/lib /usr/lib/mysql
/sbin/ldconfig
rm -f /usr/bin/mysql
ln -s /opt/modules/mysql/bin/mysql /usr/bin/mysql
ln -s /opt/modules/mysql/include/mysql /usr/include/mysql
#初始化mysql
mkdir /opt/data/mysql/ -p
/opt/modules/mysql/scripts/mysql_install_db --user=mysql --datadir=/opt/data/mysql/ --basedir=/opt/modules/mysql/
#启动mysql并尝试重启mysql
/opt/modules/mysql/bin/mysqld_safe --user=mysql &
/sbin/chkconfig --level 345 mysqld on
/etc/init.d/mysqld restart
#mysql运维优化配置参数
#32G
ct >> /etc/my.cnf <<EOF
[client]
port = 3306
socket = /opt/data/mysql/mysqld.sock
[mysqld]
port = 3306
socket = /opt/data/mysql/mysqld.sock
datadir = /opt/data/mysql
bind-address=127.0.0.1
bind-address=绑定IP
skip-external-locking
skip-name-resolve
slave-skip-errors = 1114
max_connections = 2048
slow-query-log
key_buffer_size = 128M
max_allowed_packet = 2M
table_open_cache = 512
sort_buffer_size = 2M
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_type = 0
query_cache_size = 128M
thread_concurrency = 16
thread_cache_size = 100
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=test.%
server-id = 71
group_concat_max_len = 102400
innodb_data_home_dir = /opt/data/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /opt/data/mysql/
innodb_buffer_pool_size = 18G
innodb_additional_mem_pool_size = 100M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_file_per_table=1
max_heap_table_size = 1G
bulk_insert_buffer_size = 1G
tmp_table_size = 1G
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
最后关于binlog的日志,加上以下配置,查看的时候使用mysqlbinlog比较直观:
max_binlog_size = 1G
binlog_format=STATEMENT
#查看的时候使用:
/pathtomysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000006日志文件:
use `canal`/*!*/;
SET TIMESTAMP=1540284079/*!*/;
#这样的日志比较直观
UPDATE `name` SET `name`='123456' WHERE (`id`='1')
/*!*/;
# at 327
#181023 16:41:19 server id 1 end_log_pos 358 CRC32 0x1f7e8c76 Xid = 4
关于mysql的bin日志查看以前还有一篇文章可以实现tail实时搜索查看本博客中的专门文章。