Ubuntu下MySQL的安装及远程连接配置等配置

一、Ubuntu下MySQL的安装和登陆

在Ubuntu命令行下输入 sudo apt-get install mysql-server 即可安装mysql服务,默认在安装mysql-server时,会自动安装好mysql-client。

同时安装好的mysql配置文件位置:/etc/mysql/my.cnf

启动mysql的快捷图标为:/etc/init.d/mysql

登陆命令:mysql -u root -p 

重启命令:mysql sudo /etc/init.d/mysql restart

二、编码问题的解决

查看当前MYSQL字符集[在mysql命令行模式下执行]:show variables like 'character%';

更改编码:sudo vim /etc/mysql/my.cnf

找到[client] 添加如下两句:

//默认字符集为utf8

default-character-set=utf8

找到[mysqld] 添加添加如下四句:(注意每一行的前后都不能有空格)

//默认字符集为utf8

default-character-set=utf8

//设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行

init_connect='SET NAMES utf8'

最后切换到vim的末行模式下执行wq退出vim编辑器.

停止数据库服务:sudo /etc/init.d/mysql stop

重新启动:         s udo /etc/init.d/mysql start

进入数据库:      mysql -uroot -p(你的密码)

查看编码:         show variables like '% character %';

此时应该就全是 utf8编码了。

三、 MySQL服务 加入开机自启动

加入开机自启动:        sudo update-rc.d mysql defaults

从开机自启动中移出:    sudo update-rc.d -f mysql remove

四、远程连接ubuntu下MySQL(Ubuntu 8.0.4 远程连接)

vim /etc/mysql/my.cnf找到

bind-address = 127.0.0.1

这行,注释掉(如下)

#bind-address = 127.0.0.1

或者改为

bind-address = 0.0.0.0

允许任意IP访问,或者自己指定一个IP地址。

然后重启 MySQL

sudo /etc/init.d/mysql restart

授权用户能进行远程连接

grant all privileges on *.* to root@"%" identified by "password" with grant option;

flush privileges;

第一行命令解释如下:

*.*             :第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。

root           :授予root账号。

“%”           :表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。

“password”:分配账号对应的密码,这里密码自己替换成你的mysql root帐号密码。

第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。

此时再远程连接ubuntu下的MySQL应该能够连接上了。

五 介绍mysql的几个常用命令

一、库操作

1、、创建数据库
命令:create database <数据库名>
例如:建立一个名为test的数据库
mysql> create database test; 
2、显示所有的数据库
命令:show databases

mysql> show databases;
3、删除数据库
命令:drop database <数据库名>
例如:删除名为 test的数据库
mysql> drop database test;
4、连接数据库
命令: use <数据库名>
例如:如果test数据库存在,尝试存取它:
mysql> use test;
屏幕提示:Database changed
5、查看当前使用的数据库
mysql> select database();

6、当前数据库包含的表信息:
mysql> show tables;


如果要设置为任何客户端都可以以root连接的话,可以这么写:
grant all on *.* to  identifiied by 'root的密码'

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

类似这用方法的整理如下:

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

但问题仍没有解决:

找到 命令 mysql> flush privileges //使修改生效

显示影响了零行。

问题依然没有解决,重新启动mysql sudo /etc/init.d/mysql restart


原文地址:https://www.cnblogs.com/akatuki/p/4246807.html