安装MySQL

准备: 检查是否已安装mysql
adrian@adrian:~$ dpkg-query -L mysql //Debian package manager
dpkg-query: 软件包 mysql 没有被安装

1.使用以下命令即可进行mysql安装

注意安装前先更新一下软件源以获得最新版本:
$ sudo apt-get update #更新软件源$ sudo apt-get install mysql-server #安装mysql
上述命令会安装以下包:apparmormysql-client-5.7mysql-commonmysql-servermysql-server-5.7mysql-server-core-5.7因此无需再安装mysql-client等。安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了mysql。

2.启动和关闭mysql服务器

$ service mysql start$ service mysql stop
Ubuntu 安装MySQL - 图1

3.确认是否启动成功

mysql节点处于LISTEN状态表示启动成功:
$ sudo netstat -tap | grep mysql
Ubuntu 安装MySQL - 图2

4.进入mysql shell界面

$ mysql -u root -p
Ubuntu 安装MySQL - 图3

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’**

问题描述:Ubuntu在安装完成mysql后,无法直接通过mysql -u root -p命令登录mysql,出现如下错误:ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
解决方法:
Ubuntu linux下安装新版本mysql,安装时root密码是随机的,因此会出现上述错误。

第一步,登录mysql

既然我们无法通过root用户进入MySQL,那我们就只能通过其他用户登录MySQL了。在我们下载安装MySQL的时候系统给我们创建了一个用户。打开 /etc/mysql/debian.cnf如下。
Ubuntu 安装MySQL - 图4
我们找到client的user和password,然后在终端输入 mysql -u debian-sys-maint -p 然后回车输入 password的内容。这样就进入了MySQL了,如图:
Ubuntu 安装MySQL - 图5

第二步,查看user表

在mysql中输入:select user, plugin from mysql.user,结果如下:
Ubuntu 安装MySQL - 图6

第三步,修改root密码

输入以下命令:update mysql.user set authentication_string=PASSWORD(‘admin’), plugin=’mysql_native_password’ where user=’root’;

第四步,刷新

输入以下命令:flush privileges;
然后重新启动服务器,就可以正常登录啦

MySQL中文乱码的问题

5、解决利用sqoop导入MySQL中文乱码的问题

(可以插入中文,但不能用sqoop导入中文)导致导入时中文乱码的原因是character_set_server默认设置是latin1,如下图。
Ubuntu 安装MySQL - 图7
可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效,建议按以下方式修改编码方式。
(1)编辑配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
(2)在[mysqld]下添加一行character_set_server=utf8
如下图
Ubuntu 安装MySQL - 图8
(3)重启MySQL服务
service mysql restart
(4)登陆MySQL,并查看MySQL目前设置的编码。show variables like "char%";
Ubuntu 安装MySQL - 图9
完成编码方式的修改后,即解决了sqoop导入MySQL中文乱码的问题。至此,ubuntu系统上顺利完成安装mysql
数据库。

MySql开机启动

1、执行sudo sysv-rc-conf —level 2345 mysql on,如果提示没有sysv-rc-conf命令,先下载
  下载命令:sudo apt-get install sysv-rc-conf (遇到问题见下)

2、查看服务列表sysv-rc-conf —list mysql,如果看到2345都是on,则设置成功
root@192:/home/bigdata# sysv-rc-conf —list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3、重启reboot,检验msyql是否已经重启,ps -ef|grep mysql,如出现下图,说明重启成功
root@192:/home/bigdata# ps -ef|grep mysql
mysql 24747 1 0 10月18 ? 00:01:18 /usr/sbin/mysqld
root 24858 20869 0 10月18 pts/8 00:00:00 sudo mysql_secure_installation
root 24859 24858 0 10月18 pts/8 00:00:00 mysql_secure_installation
root 54018 20869 0 10:47 pts/8 00:00:00 vi /etc/mysql/my.cnf
root 54123 54102 0 10:49 pts/9 00:00:00 grep —color=auto mysql

解决无法定位sysv-rc-conf包

  1. 进入 etc/apt
    Ubuntu 安装MySQL - 图10
    2. 使用vim sources.list命令 在里面sources.list 添加镜像源 deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
    Ubuntu 安装MySQL - 图11
    3.然后 sudo apt-get update
    4. sudo apt-get install sysv-rc-conf 接着安装就可以了
    Ubuntu 安装MySQL - 图12

远程访问linux的mysql

linux 默认自带 vi, 一般使用升级版 vim,首次使用vim软件:sudo apt install vim
1)修改mysql的配置文件使得除本机之外的ip可以访问到数据库;
adrian@adrian:~$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address由127.0.0.1 改为0.0.0.0
重启mysql:adrian@adrian:~$ sudo /etc/init.d/mysql restart
2)给予root用户从别的主机上访问数据库的权限:
adrian@adrian:~$ mysql -u root -p
Enter password:
mysql> grant all privileges on . to ‘root’@’%’ identified by ‘admin’ with grant option ; //admin为密码
mysql> select user,host from mysql.user;
+—————————+—————-+
| user | host |
+—————————+—————-+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+—————————+—————-+
mysql> flush privileges;
3)重启数据库
service mysql restart
4)恢复数据库的办法:
mysql> create databse mydb;
mysql> quit
adrian@adrian:~$ mysql -u root -p webstore < webstore.sql