环境:腾讯云服务器(ubuntu 16.04.1)
背景:安装MySQL数据库,供个人开发使用
配置MySQL数据库,解决中文乱码,远程访问,数据包大小限制等问题
步骤:
- 使用xshell等工具登录至云服务器,切换至root用户:
ubuntu@VM-202-164-ubuntu:~$ su Password: root@VM-202-164-ubuntu:/home/ubuntu#
说明:笔者的主机开启了root登录,所以可以使用su命令切换至root,如果你的主机还不能使用su切换到root用户,那就需要初始化一下root用户的密码了,很简单,方法如下。
ubuntu@VM-202-164-ubuntu:~$ sudo passwd root Enter new UNIX password:
设置一个root密码,就可以su到root用户了。
xshell是一个终端模拟软件,类似于Windows的远程桌面,可以登录至远程主机,类似的软件还有很多。如果你使用的是虚拟机,直接登录就好了,不要拘泥于这些。
- 使用apt安装MySQL:
root@VM-202-164-ubuntu:/home/ubuntu# apt-get install mysql-server Reading package lists... Done Building dependency tree Reading state information... Done mysql-server is already the newest version (5.7.20-0ubuntu0.16.04.1). 0 upgraded, 0 newly installed, 0 to remove and 185 not upgraded. root@VM-202-164-ubuntu:/home/ubuntu#
说明:由于笔者的主机已经安装了最新版本的MySQL,所以会有上边的提示。注意:如果想要使用apt安装,请确保你的主机可以连接到互联网。此处会提示设置root用户的密码等,Y/N确认?等,正常输入就好。 - 到此MySQL服务器就安装成功了,下面我们验证一下是否安装成功,并做一些配置,免得产生不必要的麻烦:
查看进程:
root@VM-202-164-ubuntu:/home/ubuntu# ps -aux|grep mysql|grep -v grep mysql 27866 0.0 29.7 1148940 263592 ? Ssl Nov14 19:38 /usr/sbin/mysqld
说明:查看是否存在MySQL进程
查看端口:
root@VM-202-164-ubuntu:/home/ubuntu# netstat -nlt|grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
说明:MySQL默认使用3306端口,查看该端口的状态
查看service状态:
root@VM-202-164-ubuntu:/home/ubuntu# service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2017-11-14 22:50:15 CST; 1 months 1 days ago Main PID: 27866 (mysqld) Tasks: 35 Memory: 263.1M CPU: 19min 39.122s CGroup: /system.slice/mysql.service └─27866 /usr/sbin/mysqld Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. root@VM-202-164-ubuntu:/home/ubuntu#
说明:显示如上结果,说明service正常
通过启动命令检查MySQL服务器状态:
root@VM-202-164-ubuntu:/home/ubuntu# service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2017-11-14 22:50:15 CST; 1 months 1 days ago Main PID: 27866 (mysqld) Tasks: 35 Memory: 263.1M CPU: 19min 39.122s CGroup: /system.slice/mysql.service └─27866 /usr/sbin/mysqld Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. root@VM-202-164-ubuntu:/home/ubuntu# /etc/init.d/mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2017-11-14 22:50:15 CST; 1 months 1 days ago Main PID: 27866 (mysqld) Tasks: 35 Memory: 263.1M CPU: 19min 39.177s CGroup: /system.slice/mysql.service └─27866 /usr/sbin/mysqld Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. root@VM-202-164-ubuntu:/home/ubuntu#
说明:显示如上结果,说明MySQL服务器状态正常。
到此MySQL数据库就可以正常使用了,可以试一下:
root@VM-202-164-ubuntu:/home/ubuntu# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 30257 Server version: 5.7.20-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
执行mysql -u root -p ,输入刚刚设置的数据库root用户的密码(注意是数据库用户而不是系统用户哦),进入MySQL命令行界面,在Windows上用过MySQL的你对这个界面一定很熟悉了吧。写两个sql试试感觉:mysql> use mysql; Database changed mysql> select * from user; -- 一堆结果,不粘了,输入exit命令退出MySQL命令行 mysql>exit Bye
- 配置MySQL服务器的charset,此处解决MySQL插入中文乱码的情况。(该部分需要能够简单使用vi编辑器来修改配置文件)
root@VM-202-164-ubuntu:/home/ubuntu# cd /etc/mysql/mysql.conf.d root@VM-202-164-ubuntu:/etc/mysql/mysql.conf.d#
root@VM-202-164-ubuntu:/etc/mysql/mysql.conf.d# vi mysqld.cnf
#在[mysqld]标签下,增加服务器端的字符编码,增加[client]修改客户端编码 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8
说明:修改mysqlld.cnf这个配置文件,此处针对MySQL 5.7.20举个栗子,各个版本的MySQL配置文件结构略有差异,总之就是被各种include,配置文件被各种拆分。但是需要修改的内容不变,这个问题应该难不倒聪明的你。修改完之后需要重启MySQL的,怎么重启呢,请看这↓。root@VM-202-164-ubuntu:~# /etc/init.d/mysql restart
最后,验证一下:mysql -u root -p mysql> show databases; mysql> use information_schema; mysql> show tables; mysql> show variables like '%char%';
依次执行上边这个↑,如果结果是下边这个↓,所有字符集都变成了utf-8,就搞定了,在进行一系列修改之前可并不是这样的呢。mysql> show variables like '%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.17 sec)
- 让MySQL可以被远程访问到。在MySQL的使用中,我们经常使用可视化界面的软件去连接数据库,比如SQLyog这个软件,但是配置好主机ip、用户名、密码等等等之后发现连接失败了,接失败了,失败了,败了,了~~~蛋疼得很,以下配置就是解决这个问题,开启MySQL服务器的远程访问。
root@VM-202-164-ubuntu:/home/ubuntu# cd /etc/mysql/mysql.conf.d root@VM-202-164-ubuntu:/etc/mysql/mysql.conf.d#
root@VM-202-164-ubuntu:/etc/mysql/mysql.conf.d# vi mysqld.cnf
没错,又是这个配置文件#修改bind-address127.0.0.1为0.0.0.0 bind-address = 0.0.0.0
修改之后别忘记保存:wq哦,第一步完成,接下来是第二步:root@VM-202-164-ubuntu:~# mysql -u root -p Enter password: mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "ROOT"; --ROOT为密码 mysql> flush privileges;
授权root用户的远程访问。接下来是重启MySQL:root@VM-202-164-ubuntu:~# /etc/init.d/mysql restart
最后,验证试试,看看还显不显示连接失败。 - 再给几个常用MySQL命令:
#MySQL服务器开启,关闭,重启 /etc/init.d/mysql start /etc/init.d/mysql stop /etc/init.d/mysql restart
- 在调试java程序的时候抛出一个异常(具体是什么不记得了),反正有max_allowed_packet这个字段的提示,很明显,由于insert或者update语句中包含长文本,太长了超过了某个阈值(其实就是你一次insert的东西太大了,MySQL为保证IO的正常而设置的阈值),而这个阈值是在MySQL服务端设置的,不管你有没有遇到这个异常呢,先记下来吧,以备不时之需。其实设置步骤很简单:
root@VM-202-164-ubuntu:~# mysql -u root -p Enter password: mysql> show VARIABLES like '%max_allowed_packet%'; mysql> set global max_allowed_packet = 2*1024*1024*10;
其实就是设置max_allowed_packet这个值,单位是b,所以2*1024*1024*10代表20M。但是设置这个值重启服务后就会失效,如果永久设置,修改/etc/mysql/mysql.conf.d/mysqld.cnf中max_allowed_packet的值后重启即可.root@VM-202-164-ubuntu:~# /etc/init.d/mysql restart
最后验证一下:root@VM-202-164-ubuntu:~# mysql -u root -p Enter password: mysql> show VARIABLES like '%max_allowed_packet%';
相关推荐
ubuntu16.04.1操作系统下 mysql安装和卸载图文教程说明
ubuntu 下mysql 安装及配置文件 有个是关于编码方式的 也可以在windows下修改 不过文件名不一样了
MySQL在Ubuntu系统上的安装配置
MySQL安装和配置手册(Ubuntu)MySQL安装和配置手册(Ubuntu)MySQL安装和配置手册(Ubuntu)MySQL安装和配置手册(Ubuntu)MySQL安装和配置手册(Ubuntu)
ubuntu mysql apache2 tomcat 安装配置
ubuntu下MySql的安装教程,每一步都有详细的说明。也提供了一些安装中的问题的解决方法,绝对可用。
本文档简单的阐述了如何在Ubuntu18.04安装mysql,并成功的启动mysql,笔者是window 10 和Ubuntu的双系统,为了方便就安装了个mysql
胖子摸索出来的,Ubuntu上MySQL的Replication配置,的简单记录步骤
ubuntu20.04离线安装mysql8.0.30需要的tar包和对应的两个依赖包分别是:libaio1和libmecab2,详细的安装步骤请关注博主的另一篇博文
ubuntu mono apache mysql 安装指南 各种安装问题研究总结
Ubuntu下MySQL安装及配置文档,自己...Ubuntu12.04下MySQL安装配置 一.MySQL安装 2 二.MySQL开机自启动设置 4 三.MySQL常用操作 5 四.编码配置 8 五.更改mysql的数据库目录 10 六.忘记登录密码 11 七.一些错误记录 12
从mysql官网上下载mysql-server_5.7.21-1ubuntu14.04_amd64.deb-bundle.tar,然后进行离线安装,解压该安装包,会出现11个依赖包,按照顺序依次使用sudo dpkg -i 进行安装,中间会报错,显示缺少相应的依赖,具体...
ubuntu 16.04下mysql的安装及配置文档,很工整,齐全
ubuntu 20.04 LTS离线安装 MySQL8.0,并配置远程登录详细教程,并配备安装包
手动在Ubuntu系统下安装指定版本mysql,
ubuntu8.04速成手册1.0.rar ubuntu8.04 ubuntu8安装与配置 ubuntu8.0.4实用手册
windows7上VMware虚拟机上三台ubuntu10.10上hadoop的安装及配置详解
这是一份可以在Ubuntu安装的mysql,同时里面附带了安装手册,适用于ubuntu系统,便于快速安装。