【安装】Ubuntu之MySQL

工欲善其事,必先利其器。

Ubuntu18.04安装MySQL

1. 命令安装

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
  • 安装成功后可以通过下面的命令测试是否安装成功:
sudo netstat -tap | grep mysql

出现了错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'问题

  • 依次执行一下命令:
sudo mkdir -p /var/run/mysqld
sudo chown mysql /var/run/mysqld/
sudo service mysql restart
  • 解决msyql需要超级用户登录的问题

/etc/mysql/mysql.conf.d/mysqld.cnf添加点内容,service mysql restart,重新启动mysql

[mysqld]
skip-grant-tables

2. tar安装

  • 下载地址
https://dev.mysql.com/downloads/mysql/
  • 解压
mkdir mysql
tar -xvf mysql-server_5.7.30-1ubuntu18.04_amd64.deb-bundle.tar -C /opt/mysql
sudo dpkg -i libaio1_0.3.110-2_amd64.deb
sudo dpkg-preconfigure mysql-community-server_*.deb # 这一步需要设置密码
sudo dpkg -i mysql-common_*.deb
sudo dpkg -i mysql-community-client_*.deb
sudo dpkg -i mysql-client_*.deb
sudo dpkg -i libmecab2_0.996-1.2ubuntu1_amd64.deb # 依赖安装,之后才是server安装
sudo dpkg -i mysql-community-server_*.deb

远程访问

1.试一试能否远程访问

  • -P:端口(默认3306)
  • -h:ip地址
  • -u:用户名
  • p:密码
mysql -uroot -proot -h 172.17.0.1 -P 12345

默认仅支持本地访问

2.登录数据库

mysql -uroot -p{密码}

3.切换到mysql数据库

use mysql

4.查看数据库当前访问权限信息

mysql> select User,Host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| User          | Host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

5.设置访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
  • *.*:代表所有资源所有权限
  • 'root'@'%':其中root代表账户名,%代表所有的访问地址,也可以使用一个唯一的地址进行替换,只有一个地址能够访问。如果是某个网段的可以使用地址与%结合的方式,如10.0.42.%。
  • IDENTIFIED BY 'root':这个root是指访问密码。
  • WITH GRANT OPTION允许级联授权。

6.刷新访问权限表

FLUSH PRIVILEGES;

7.重新查看用户表

mysql> select User,Host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| User          | Host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root          | %         | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

8. 重启mysql服务

service mysql restart

9. 查看防火墙是否关闭

service iptables status

10. 关闭防火墙

service iptables stop

11. 注释配置文件

cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf

# 注释bind-address = 127.0.0.1

操作完成之后即可远程登录。

参考地址:https://www.jianshu.com/p/478dc7c9b9e0

原文地址:https://www.cnblogs.com/ydongy/p/13204246.html