工欲善其事,必先利其器。
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
操作完成之后即可远程登录。