解决mac平台的mysql+python的中文乱码问题
来源:互联网 发布:python解析xml文件 编辑:程序博客网 时间:2024/05/16 15:35
首先,针对mysql数据库来说,它的默认字符是:latin1
我们写不进去中文的罪魁祸首就是这个latin1。那么,对应的解决办法就是将这个字符集改成UTF-8
那么,最简便的方法:对于window(修改my.ini配置文件),my.ini在哪里,如何修改成UTF-8如下:
https://www.cnblogs.com/Ray-xujianguo/p/3322455.html
对于mac平台(修改/etc/my.cnf配置文件),但事实却是我们在/etc下面没有my.cnf配置文件。这时候就要我们自己写一个my.cnf配置文件支持UTF-8
我们用vim 在/etc路径下新建一个my.cnf(记得用sudo命令哦),
sudo vim my.cnf
然后将如下代码拷贝到my.cnf里面:
# 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 MASTER_HOST='125.564.12.1', MASTER_PORT=3306, # MASTER_USER='joe', MASTER_PASSWORD='secret'; # # OR # # 2) Set the variables below. However, in case you choose this method, then # start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a master.info file, and any later # change in this file to the variables' values below will be ignored and # overridden by the content of the master.info file, unless you shutdown # the slave server, delete master.info and restart the slaver server. # For that reason, you may want to leave the lines below untouched # (commented) and instead use CHANGE MASTER TO (see above) # # required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master-host = <hostname> # # The username the slave will use for authentication when connecting # to the master - required #master-user = <username> # # The password the slave will authenticate with when connecting to # the master - required #master-password = <password> # # The port the master is listening on. # optional - defaults to 3306 #master-port = <port> # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /usr/local/mysql/data #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /usr/local/mysql/data # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set=utf8 [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
之后重启一下mysql服务
点下那个Stop MySQL Server,然后再点下就重启了。
一切弄完了。
进行mysql ,键入命令
mysql -u root -p. (这条命令是让你进入mysql的)show variables like '%char%';
如下是以下结果就说明成功了:
这里要注意的是:如果你在改变字符集之前建的表。那么,它的字符集无法改变,你要再改变字符集之后重新建表才能解决这个问题
2.然后,我们解决python连接mysql的中文乱码问题:
对于python来说,只有一行代码修改字符集:
import sysreload(sys)sys.setdefaultencoding("utf-8")
以上,mysql+python的中文乱码问题就解决了。
阅读全文
0 0
- 解决mac平台的mysql+python的中文乱码问题
- mac 解决MySQL中文乱码的问题
- mysql mac下解决MySQL中文乱码的问题
- 解决mac下MySQL插入中文显示乱码的问题
- mac下解决MySQL中文乱码的问题
- mac下解决MySQL中文乱码的问题
- python操作mysql数据库如何解决中文乱码的问题
- mac解决mysql中文乱码问题
- python中的中文乱码问题的解决
- MySQL-front解决中文乱码的问题
- MySQL中文乱码问题的解决
- MySQL中文乱码问题的解决
- MySQL中文乱码问题的解决
- mysql数据库中文乱码问题的解决
- 解决mysql中文乱码的问题
- 解决MySQL数据库的中文乱码问题
- MySQL-front解决中文乱码的问题
- 解决mysql中文乱码的问题
- influxdb+grafana使用问题记录
- 大学体育信息管理系统
- 数组去重的10中方法
- ubuntu安装jdk
- 松弛变量与惩罚因子
- 解决mac平台的mysql+python的中文乱码问题
- Sbulime3中配置Cmder
- Wireless Network POJ
- 用rvm安装升级ruby
- 神经网络图灵机的通俗解释和详细过程及应用?
- Java集合(四)
- 记住它,管理员还加班?不能够!
- 全球首例无人驾驶公交在中国上路!世界震惊!
- 泛式——学生成绩排序