使用APT安装,官方指南点这里
添加apt仓库
在官网上下载deb包后,安装,路径写上这个包的路径
sudo dpkg -i /PATH/version-specific-package-name.deb
然后sudo apt update
更新仓库数据。
快乐地安装
安装mysql-server
, mysql-client
和mysql-workbench-community
,分别是服务器、客户端和管理数据库的图形界面。
把apt换成国内镜像源就不用说啦~
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install mysql-workbench-community
当然,你还可以安装别的配套程序,如connector
, cluster
等,这里是可用的程序的列表。
启动服务并初始化
- 启动服务
显示sudo service mysql start
* MySQL Community Server 5.7.31 is started
就成功啦 - 初始化
这里会要配置比较多的东西sudo mysql_secure_installation
VALIDATE PASSWORD plugin
可以不要- 设置新密码
Remove anonymous users?
移除匿名用户Disallow root login remotely?
取消远程登陆root账号Remove test database and access to it?
删除测试数据库Reload privilege tables now?
立即刷新权限表
最后就可以啦
- 登陆
用我们刚才设置的密码登陆root账号。sudo mysql -uroot -p
- 新建用户
因为前面取消了远程登陆root,所以这里要新建一个用户才能远程登陆
yourname和yourpassword分别是新建的用户名和密码mysql> grant all privileges on *.* to yourname@"%" identified by "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;