mysql
centos8版本快速部署nginx,mysql安装
星期二, 一月 21st, 2020 | JAVA-and-J2EE, linux | 没有评论
0.centos8版本快速部署nginx,mysql安装
1.系统预检 查看版本
cat /etc/redhat-release |
初始系统为8.0版本,执行更新后为8.1:
yum update cat /etc/redhat-release |
CentOS Linux release 8.1.1911 (Core)
› Continue reading
centos7下的php-fpm的优化
星期四, 十月 3rd, 2019 | linux, php | 没有评论
云主机只有1C1G的内存,既要运行wordpress还要运行一个java程序及mysql,内存实在吃紧,运行1天发现mysql内存不足被杀掉,随优化之。
1.优化mysql参数
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
详情可以参考 https://www.pomelolee.com/1304.html
2.php-fpm优化,减少php-fpm的数量
配置文件地址:/etc/opt/remi/php70/php-fpm.conf
实际修改配置文件:/etc/opt/remi/php70/php-fpm.d/www.conf
systemctl stop php70-php-fpm.service
pm = dynamic
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5
systemctl restart php70-php-fpm.service
wordpress版本升级到5.2.3记录
星期日, 九月 8th, 2019 | wordpress | 没有评论
阿里云老是提醒wordpress系统安全问题之类,提醒的烦了就准备升级下,小计.
1.到服务器下载最新版 https://wordpress.org/download/
最新版地址:https://wordpress.org/latest.zip
2.覆盖后升级,发现需要php5.6+,自己的php版本还是5.5+系列
3.折腾,顺便把服务器的centos6.5的也更换到centos7.6,后来发现被坑了一天才完成整改升级计划
4.服务器更新系统很快,安装nginx-1.17.3,mysql5.7,导入数据,
遇到的问题:
4.1:mysql5.7 兼容0000-00-00 00:00:00的日期格式,
4.2:移除wp-seccode插件(不兼容php7.0)
4.3: mysql_connect 更换成 mysqli_connect 等新函数(自己部署的其他应用部分)
5.总算正常进入及展示了,话说新的后台写文章的界面还真是漂亮
后台写文章界面如下图:

解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错及Ubuntu Server下启动/停止/重启MySQL
星期六, 七月 27th, 2019 | JAVA-and-J2EE, linux | 没有评论
解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错及Ubuntu Server下启动/停止/重启MySQL
1.Ubuntu Server下启动/停止/重启MySQL
启动mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo service mysql start 停止mysql: 方式一:sudo /etc/init.d/mysql stop 方式二:sudo service mysql stop 重启mysql: 方式一:sudo/etc/init.d/mysql restart 方式二:sudo service mysql restart |
2. ‘0000-00-00 00:00:00’报错的解决
使用 SELECT @@sql_mode; 查询当前的sql模式
更改模式版本 在my.cnf[mysqld]下添加 重启服务即可
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
docker 下mysql时区8个小时的解决办法及JDBC连接数据库mysql serverTimezone useSSL时差
星期四, 六月 20th, 2019 | JAVA-and-J2EE, linux | 没有评论
问题起因:
1.应用启动初始化数据看了下插入的数据时间和本地时间不一致 差了8个小时
解决方法:
网上检索之发现最终引起的原因是新版JDBC驱动指定的serverTimezone的原因
1.修正docker下mysql时区的问题
show variables like '%time_zone%'; set global time_zone='Asia/Shanghai'; set time_zone='Asia/Shanghai'; flush privileges; |
实际上这么操作后,如果无法生效的话,还是要修改配置文件并重新启动mysql使其生效
docker下的路径在 /etc/mysql/conf.d/my.cnf
修改my.cnf default-time-zone ='Asia/Shanghai' |
查看 select now(); 等 如下图
2.因使用的新版的驱动需要调整的部分
mysql的全量(查询)日志general-log的开启
星期一, 五月 21st, 2018 | JAVA-and-J2EE, linux | 没有评论
怀疑有异常连接进来操作数据库则开启日志记录.
mysql> show global variables like '%general%'; +------------------+----------------------------+ | Variable_name | Value | +------------------+----------------------------+ | general_log | OFF | | general_log_file | /var/run/mysqld/mysqld.log | +------------------+----------------------------+ 2 rows in set (0.00 sec) mysql> set global general_log=on; Query OK, 0 rows affected (0.00 sec) mysql> set global general_log_file='/data/logs/mysql/mysql_general_log.log'; ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value of '/data/logs/mysql/mysql_general_log.log' |
1. 设置general log保存路径
2. 注意在Linux中只能设置到 /tmp 或 /var 文件夹下,设置其他路径出错
3. 需要root用户才有访问此文件的权限
4. 针对 2的一点注意 此版本是mysql-5.1.73 无法使用其他路径,可能新版本可以使用
已经尝试
chown -R mysql:mysql /data/logs/mysql/ chomd 777 /data/logs/mysql/mysql_general_log.log |
支持emoji图标直接存储到数据库,更改MySQL数据库的编码为utf8mb4
星期一, 十月 23rd, 2017 | Database, JAVA-and-J2EE | 一条评论
随着emoji的频繁使用,对接微信后会带名字的emoji的很多,现在都需要支持.
utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。
如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常:
1 2 3 4 5 6 7 8 9 | java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94’ for column ‘name’ at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581) |
可以对4字节的字符进行编码存储,然后取出来的时候,再进行解码。但是这样做会使得任何使用该字符的地方都要进行编码与解码。
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。
更改数据库的编码为utf8mb4:
1. MySQL的版本
utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。
2. MySQL驱动
5.1.34可用,最低不能低于5.1.13
3.修改MySQL配置文件
my.cnf一般在/etc/my.cnf位置。找到后请在以下三部分里添加如下内容:
1 2 3 4 5 6 7 8 9 10 | [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 |
4. 重启数据库,检查变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'; Variable_name Value character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database utf8mb4 character_set_filesystem binary character_set_results utf8mb4 character_set_server utf8mb4 character_set_system utf8 collation_connection utf8mb4_unicode_ci collation_database utf8mb4_unicode_ci collation_server utf8mb4_unicode_ci collation_connection 、collation_database 、collation_server是什么没关系。 但必须保证 系统变量 描述 character_set_client (客户端来源数据使用的字符集) character_set_connection (连接层字符集) character_set_database (当前选中数据库的默认字符集) character_set_results (查询结果字符集) character_set_server (默认的内部操作字符集) 这几个变量必须是utf8mb4。 |
5. 数据库连接的配置
数据库连接参数中:
characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
而autoReconnect=true是必须加上的。
6. 将数据库和已经建好的表也转换成utf8mb4
更改数据库编码:ALTER DATABASE xxdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
更改表编码:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
如有必要,还可以更改列的编码
mysql支持存储emoji在5.5.3版本以后支持
星期一, 五月 2nd, 2016 | JAVA-and-J2EE, linux | 没有评论
在做基于办公的沟通软件中,常用一些emoji的聊天版本,发现在mysql中无法存储.
因为emoji表情在存储时转成的四个字节(\xF0\x9F\x90\xAC);
由于数据库使用的是utf8字符集utf8_general_ci,这个校对规则(collation)最大只支持3个字节,所以四个字节的emoji就会存储不全,从而取出无法显示.
简要说明
上文提到的 utf8_general_ci 与 ut8_unicode_ci 是utf8的两种字符编码方式,不同之处就是对字符的分类(sorting)和对比(comparison)。
MySQL 5.5.3及以后版本支持使用utf8mb4字符集,它在与utf8数据格式处理性能相同基础上加强了对字符码位(code point)的处理能力。与utf8对应的,utf8mb4有 utf8mb4_general_ci 和 utf8mb4_general_ci 。
utf8mb4_general_ci 基于Unicode standard sorting与comparison,支持更多的语言种类。
utf8mb4_general_ci 不能解析所有的Unicode分类规则,在一些特别的语言或字符处理上存在一定的问题。不过在性能上,它能更快的sorting、comparison,因其采用一组性能相关的快捷方式(performance-related shortcuts)。
解决办法
通过上文我们已经知道一种解决办法了,但有一个硬性条件就是你的数据库版本。当你的数据库版本没有达到5.5.3怎么办呢…总结一下,mysql支持存储emoji表情的方法,至少有两种。
1.修改数据库编码为utf8mb4,前提是你的mysql数据库版本必须得是5.5.3及以后的
2.将带emoji的文本转为base64来进行存储,返回时进行相应解码返回
下面介绍我如何使用第一种方法:
将数据库编码由utf8改为utf8mb4
set character_set_client = utf8mb4; set character_set_connection = utf8mb4; set character_set_database = utf8mb4; set character_set_results = utf8mb4; set character_set_server = utf8mb4; |
将已经生成的表也转成utf8mb4
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; |
小记:直接在这个层面上解决,省了在代码中转和处理方便很多.
Mac下启动和停止Mysql及查看端口
星期三, 三月 18th, 2015 | JAVA-and-J2EE, mac | 没有评论
启动Mysql服务
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
停止Mysql服务
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
重启Mysql服务
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
查看是否启动成功可以输入:netstat -an -p tcp 看到3306端口启动成功
//—————————————————————
打开终端,输入:
vim ~/.bash_profile
输入 i
然后粘贴以下内容
# mysql
alias mysql=’/usr/local/mysql/bin/mysql’
alias mysqladmin=’/usr/local/mysql/bin/mysqladmin’
# ls
alias ls=’ls -G’
按ESC键
输入 :x
重新启动终端程序
在终端中 直接输入 mysql 就可以进入mysql
Navicat 导出mysql数据库的时候出现 “Cannot proceed because system tables used by Event Scheduler
星期六, 二月 14th, 2015 | linux, php | 没有评论
用navicat 遭遇 “Cannot proceed because system tables used by Event Scheduler were found damaged at server start” .
使用的APMServ MySQL的集成环境(工具是好用但是找对应的文件是有点麻烦,我还是比较喜欢独立安装各个的支持,追求效率的话可以忽略)
在网上找了下要用什么upgrade什么exe升级下即可,没有找到对应的执行文件,在网上找到一个对应的执行sql即可的方法,如下:
进入mysql的系统库,执行sql:
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 | DROP TABLE IF EXISTS `event`; CREATE TABLE `event` ( `db` CHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `name` CHAR(64) NOT NULL DEFAULT '', `body` longblob NOT NULL, `definer` CHAR(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `execute_at` datetime DEFAULT NULL, `interval_value` INT(11) DEFAULT NULL, `interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL, `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `modified` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `last_executed` datetime DEFAULT NULL, `starts` datetime DEFAULT NULL, `ends` datetime DEFAULT NULL, `status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED', `on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP', `sql_mode` SET('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '', `comment` CHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', `originator` INT(10) UNSIGNED NOT NULL, `time_zone` CHAR(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', `character_set_client` CHAR(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `collation_connection` CHAR(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `db_collation` CHAR(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `body_utf8` longblob, PRIMARY KEY (`db`,`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'; |
Search
相关文章
热门文章
最新文章
文章分类
- ajax (9)
- algorithm-learn (2)
- Android (6)
- as (3)
- computer (55)
- Database (29)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (4)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (158)
- linux (122)
- mac (6)
- movie-music (11)
- pagemaker (35)
- php (49)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (1)
- 体味生活 (40)
- 大数据 (4)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)