1. 卸载、删除mysql
想要重新安装mysql的执行下边语句。
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)
清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
2. 安装 mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
检查Mysql是否正在运行
sudo netstat -tap | grep mysql
当您运行该命令时,您可以看到类似下面的行:
root@ubuntu:~# sudo netstat -tap | grep mysql
tcp 0 0 localhost.localdo:mysql *:* LISTEN
870/mysqld
如果服务器不能正常运行,您可以通过下列命令启动它:
sudo /etc/init.d/mysql restart
3.Ubuntu18.04安装mysql5.7未提示输入密码,安装后修改mysql密码默认密码
mysql默认密码为空
但是使用mysql -uroot -p 命令连接mysql时,报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
此时修改root的默认密码即可
(1).进入到etc/mysql 目录下,查看debian.cnf文件
(2).找到用户名,密码 ,使用此账号登录mysql
这个根据个人电脑的默认密码,下边是小编的:
用户名:debian-sys-maint
密码:xedvSNKdLavjuEWV
登录:mysql -udebian-sys-maint -pxedvSNKdLavjuEWV
(3)修改root用户的的密码
这里是关键点,由于mysql5.7没有password字段,密码存储在authentication_string字段中,password()方法还能用
在mysql中执行下面语句修改密码
show databases;
use mysql;
update user set authentication_string=PASSWORD("自定义密码") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit;
(4)修改完密码,需要重启mysql
/etc/init.d/mysql restart;
(5)再次登录
mysql -u root -p
密码:
就ok了
4.开启MySQL远程访问权限 允许远程连接
(1).登陆mysql数据库
mysql -u root -p
查看user表
mysql> use mysql;
Database changed
mysql> select Host,User,authentication_string from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)
可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。
(2)实现远程连接(授权法)
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;
将权限改为ALL PRIVILEGES
use mysql;
grant all privileges on *.* to root@'%' identified by "需要设置的密码";
flush privileges;
select Host,User,authentication_string from user;
mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select Host,User,authentication_string from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
这样机器就可以以用户名root密码root远程访问该机器上的MySql.
(3)实现远程连接(改表法)
use mysql;
update user set host = '%' where user = 'root';
这样在远端就可以通过root用户访问Mysql.这个是直接将原有的root账户的Host设置为允许任何ip登录,上边两种方法也可以固定ip,将%分号改为你需要的Ip
详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式(ubuntu 18.04)
启动mysql:
方式一:sudo /etc/init.d/mysql start
方式二:sudo service mysql start
停止mysql:
方式一:sudo /etc/init.d/mysql stop
方式二:sudo service mysql stop
重启mysql:
方式一:sudo/etc/init.d/mysql restart
方式二:sudo service mysql restart