Ubuntu安装MySQL

方法一: 下载安装MySQL(安装其他版本)

在Ubuntu中,默认情况下,只有最新版本的MySQL包含在APT软件包存储库中,要安装它,只需更新服务器上的包索引并安装默认包apt-get。
如果因为程序兼容性问题,要安装5.7版本,则可以同过下载安装。
1.1在官网下载mysql安装包

https://downloads.mysql.com/archives/community/
1.2解压文件
进入你的下载文件夹下面

 tar -xvf mysql-server_5.7.13-1ubuntu16.04_i386.deb-bundle.tar


解压了这个包之后会在文件夹看到多个deb文件
1.3安装
安装顺序(很重要的,因为存在依赖关系):

libmysqlclient20_5.7.13-1ubuntu16.04_i386.deb

libmysqlclient-dev_5.7.13-1ubuntu16.04_i386.deb

libmysqld-dev_5.7.13-1ubuntu16.04_i386.deb

mysql-common_5.7.13-1ubuntu16.04_i386.deb

mysql-community-source_5.7.13-1ubuntu16.04_i386.deb

mysql-community-client_5.7.13-1ubuntu16.04_i386.deb

mysql-community-server_5.7.13-1ubuntu16.04_i386.deb

mysql-server_5.7.13-1ubuntu16.04_i386.deb


可以一次性按顺序输入安装包名字:

sudo dpkg -i libmysqlclient20_5.7.13-1ubuntu16.04_i386.deb libmysqlclient-dev_5.7.13-1ubuntu16.04_i386.deb libmysqld-dev_5.7.13-1ubuntu16.04_i386.deb mysql-common_5.7.13-1ubuntu16.04_i386.deb mysql-community-source_5.7.13-1ubuntu16.04_i386.deb mysql-community-client_5.7.13-1ubuntu16.04_i386.deb mysql-community-server_5.7.13-1ubuntu16.04_i386.deb mysql-server_5.7.13-1ubuntu16.04_i386.deb


也可以一个一个来安装(这样子能够搞懂依赖的关系)
安装过程中可能缺少依赖,所以可以用:


sudo apt-get install [文件名]


eg:这里面的问题是缺少libaio1和libmecab2,所以可以用:

sudo apt-get install libaio1 libmecab2


如果还是不能安装使用:

sudo apt-get -f install  


安装完成之后:
查看mysql服务状态:

service mysql start


进入MySQL

mysql -u root -p


2、方法二:通过apt 安装MySQL服务(推荐,会安装最新版)
#命令1 更新源

sudo apt-get update


#命令2 安装mysql服务

sudo apt-get install mysql-server


2.1 初始化配置

sudo mysql_secure_installation


#输入sudo mysql_secure_installation 设置密码报
Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication me 的解决方法:

   1. 打开终端
   2.在另一个终端,杀掉 mysql_secure_installation 的进程

  sudo killall -9 mysql_secure_installation


   3. 进入mysql  

 sudo mysql


  4.输入sql改掉加密规则

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SetRootPasswordHere';


5.然后退出

  6.重新初始化mysql
  

  sudo mysql_secure_installation


  7.输入更改加密规则时sql上的密码SetRootPasswordHere
   

配置项较多,如下所示:
#1
VALIDATE PASSWORD PLUGIN can be used to test passwords...
Press y|Y for Yes, any other key for No: N (选择N ,不会进行密码的强校验)

#2
Please set the password for root here...
New password: (输入密码)
Re-enter new password: (重复输入)

#3
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : N (选择N,不删除匿名用户)

#4
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : N (选择N,允许root远程连接)

#5
By default, MySQL comes with a database named 'test' that
anyone can access...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N (选择N,不删除test数据库)

#6
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y (选择Y,修改权限立即生效)


2.2检查mysql服务状态

systemctl status mysql.service


3.1配置远程访问
在Ubuntu下MySQL缺省是只允许本地访问的,使用workbench连接工具是连不上的;
如果你要其他机器也能够访问的话,需要进行配置;
找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)

sudo /etc/init.d/mysql restart #重启mysql
sudo mysql -uroot -p


输入用户密码
#切换数据库

mysql>use mysql;


#查询用户表命令:

mysql>select User,authentication_string,Host from user;


#查看状态

select host,user,plugin from user;
#设置权限与密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; #使用mysql_native_password修改加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER; #更新一下用户的密码
mysql> UPDATE user SET host = '%' WHERE user = 'root'; #允许远程访问
#刷新cache中配置 刷新权限
mysql>flush privileges;
mysql>quit;


如果无法更改密码使用flush privileges;然后再进行更改密码,修改加密规则操作。
其中root@localhost,localhost就是本地访问,配置成 % 就是所有主机都可连接;
第二个’密码’为你给新增权限用户设置的密码,%代表所有主机,也可以是具体的ip;
注意不要直接更新密码的编码格式,而不加密码,这样会把加密密码跟新了,需要携带密码

    FLUSH PRIVILEGES;作用是:
    将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
    MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。
    通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。
    而不必冒太大风险。

    修改密码
alter user 'root'@'%' identified with mysql_native_password by '密码';
    新增用户赋权并设置远程访问
    mysql8和原来的版本有点不一样,8的安全级别更高,所以在创建远程连接用户的时候,
    不能用原来的命令(同时创建用户和赋权):
#必须先创建用户(密码规则:mysql8.0以上密码策略限制必须要大小写加数字特殊符号)
mysql> CREATE USER 'sammy'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
#赋权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' WITH GRANT OPTION;
    修改加密方式:
    mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式Navicat 12以下客户端不支持;
    Navicat 12以下客户端支持的是mysql_native_password这种加密方式;

update user set plugin='mysql_native_password' where user='root'
    如果为了安全性,设置了用户验证,必须使用sudo,才能登录,出现如下情况:(尽量不要设置ubuntu用户在验证,否则会很麻烦)
    解决方法:
    sudo vim /etc/mysql/my.cnf
添加:
[mysqld]
skip-grant-tables
保存后重启mysql,可以正常登陆了
这样操作后,是相当于跳过了mysql的密码认证。很不安全,直接就可以登录进去。
安装MySQL 图形化工具workbench
输入

sudo snap install mysql-workbench-community


在创建链接时输入密码报下面的错误

Could not store password:store password An AppArmor policy
prevents this sender from sending this message to this recipient;
ench
shot:
type="method_call",sender=":1.220"(uid=1000 pid=14164 comm="/-
ted later ifit's not set.
snap/mysql-workbench-community/9/usr/bin/mysql-wo"
x,OSX
label="snap.mysql-workbench-community.mysql-workbench-
community(enforce)")interface="org.freedesktop.Secret.Service"
a.Leave blank to selectit later.
member="Searchltems"error name="(unset)"requested reply="0"
to design,
destination=":1.16"(uid=1000 pid=1604 comm="/usr/bin/gnome-
s well as
keyring-daemon-daemonize-login "label="unconfined") 的解决方法:


在终端输入:

sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值