Ubuntu 通过apt安装 MySQL 及解决中文乱码问题

使用APT安装,官方指南点这里

添加apt仓库

在官网上下载deb包后,安装,路径写上这个包的路径

sudo dpkg -i /PATH/version-specific-package-name.deb

然后sudo apt update更新仓库数据。

快乐地安装

安装mysql-server, mysql-clientmysql-workbench-community,分别是服务器、客户端和管理数据库的图形界面。

把apt换成国内镜像源就不用说啦~

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install mysql-workbench-community

当然,你还可以安装别的配套程序,如connector, cluster等,这里是可用的程序的列表

启动服务并初始化

  1. 启动服务
    sudo service mysql start
    
    显示* MySQL Community Server 5.7.31 is started就成功啦
  2. 初始化
    sudo mysql_secure_installation
    
    这里会要配置比较多的东西
    1. VALIDATE PASSWORD plugin可以不要
    2. 设置新密码
    3. Remove anonymous users? 移除匿名用户
    4. Disallow root login remotely? 取消远程登陆root账号
    5. Remove test database and access to it? 删除测试数据库
    6. Reload privilege tables now? 立即刷新权限表
      最后就可以啦
  3. 登陆
    sudo mysql -uroot -p
    
    用我们刚才设置的密码登陆root账号。
  4. 新建用户
    因为前面取消了远程登陆root,所以这里要新建一个用户才能远程登陆
     mysql> grant all privileges on *.* to yourname@"%" identified by "yourpassword";
    
    yourname和yourpassword分别是新建的用户名和密码
    这里*.*的意思是取得任意数据库的任意表格的所有权限,你也可以指定某个数据库的所有表格的访问权限
    mysql> grant SELECT on MyDatabase.* to yourname@"%" identified by "yourpassword";
    
    这里"%"的意思是从允许从任意IP地址访问。
    最后要刷新权限,然后重启服务器
    mysql> flush privileges
    mysql> exit
    sudo service mysql restart
    
    就可以愉快地远程登陆啦

解决中文乱码

先查询一下当前地编码

mysql> show variables like '%char%';

看到是这样的

+--------------------------+----------------------------+
| character_set_client 			| utf8	 |
| character_set_connection 		| utf8	 |
| character_set_database 		| latin1   |
| character_set_filesystem		| binary  |
| character_set_results		 	| utf8 	  |
| character_set_server 			| utf8	  |
| character_set_system 			| utf8 	  |
| character_sets_dir 			| /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

我们希望把latin1改成utf8。在/etc/mysql/mysql.conf.d找到配置文件,通常叫mysqld.cnf或者my.cnf。打开来看到里面有个LISCENSE,下面的正文大概长这样:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
# By default we only accept connections from localhost
bind-address    = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld]下面加多一句

character-set-server=utf8

然后再加多这4行,来把它们全都设成utf8

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

如果修改完之后查看一下还是latin1,可以通过单独修改数据库的编码格式

mysql> alter database <数据库名> character set utf8; 

还是不行的话,只能删掉重建一个辽,重建的时候设置好格式

CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值