1.mac上解决在eclipse中往mysql存入中文时乱码问题
当在Mac上安装好mysql后,在CMD或者客户端软件中通过show variables like 'character_set_%';来获得mysql有关的所有编码。如图:
可以发现在我的Mac上所有的编码都设置成了utf8,这样在eclipse中往mysql中可以正常存入中文,不会有???产生。但如果刚安装好mysql时,(以mysql-5.7.24-macos10.14-x86_64版本为例,其他版本应该也适用下面的方法https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-macos10.14-x86_64.dmg),mysql的character_set_server会是latin的编码。可以在/private/etc/目录下,打开my.cnf文件,设置:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
然后重启mysql服务器,此时mysql的character_set_server会变成utf8。如果/private/etc/目录下,没有my.cnf文件,可以通过命令:$ cd /etc
$ sudo vim my.cnf
创建出my.cnf,并会进入vim模式,此时将以下内容复制进去,通过:wq!保存并退出。
# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
default-character-set=utf8
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
character-set-server=utf8
init_connect='SET NAMES utf8
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character-set-server=utf8
init_connect='SET NAMES utf8'
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# where you replace <host>, <user>, <password> by quoted strings and
# <port> by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO