现在的位置: 首页 > 综合 > 正文

ubuntu mysql安装配置使用

2013年01月02日 ⁄ 综合 ⁄ 共 2189字 ⁄ 字号 评论关闭

安装MySQL
sudo apt-get install mysql-server
配置MySQL
默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root
在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。
进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456"(填写你自己的password);
注意,我这儿用的是123456做为root用户的密码。
这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以bt_data为例:
mysql>CREATE DATABASE bt_data;
mysql>GRANT ALL PRIVILEGES ON bt_data.* TO bt_data@localhost IDENTIFIED BY "123456";
这样就建立了一个bt_data的用户,它对数据库bt_data有着全部权限。以后就用bt_data来对bt_data数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在bt_data数据库中。
关于远程访问的配置:

首先假定有两台机器A,B都装有mysql;我们想实现从B上访问到A的数据;

1.更改A的配置文件 sudo vi /etc/mysql/my.cnf 

注释掉 bind-address  = 127.0.0.1这一行(前面加#)

重启mysql服务

2.用root用户登录A的mysql

1) [root@etc etc]# mysql -u  root  -p
Enter password: 
2)mysql> use mysql;
3)mysql> select host,user,password from user;(查看A上的用户设置)
4)grant all privileges on *.* to  root@B的IP  identified by 'password'(其中identified by 'password'可以省略则可以无密远程登录)(*.*意味着所有数据库的所有表)(配置任何机器都可以登录的话@后加'%')

3.尝试在B上登录A的mysql:mysql -h A的IP -u root -p(无密-p可以省略)

基本使用备注:

sudo /etc/init.d/mysql stop(start,restart)或者sudo service mysql stop..等启动关闭mysql服务

mysql -u bt_data -p;(以bt_data用户身份登录mysql,无密码则不需要-p)

python MySQLdb模块操作mysql示例:

#-*- encoding: utf-8 -*-  
import os, sys, string  
import MySQLdb  
  
# 连接数据库   
try:  
    conn = MySQLdb.connect(host='localhost',user='root',passwd='Bh123456',db='bt_data_testing')  
    print 'connection success'  
except Exception, e:  
    print e  
    sys.exit()  
  
# 获取cursor对象来进行操作  
cursor = conn.cursor()  
  
# 创建表  
sql = "create table if not exists test1(name varchar(128) primary key, age int(4))"  
cursor.execute(sql)  
# 插入数据  
sql = "insert into test1(name, age) values ('%s', %d)" % ("zhaowei", 23)  
try:  
    cursor.execute(sql)  
    print 'insert success'  
except Exception, e:  
    print e  
  
sql = "insert into test1(name, age) values ('%s', %d)" % ("张三", 21)  
try:  
    cursor.execute(sql)  
except Exception, e:  
    print e  
# 插入多条  
  
sql = "insert into test1(name, age) values (%s, %s)"   
val = (("李四", 24), ("王五", 25), ("洪六", 26))  
try:  
    cursor.executemany(sql, val)  
except Exception, e:  
    print e  
  
#查询出数据  
sql = "select * from test1"  
cursor.execute(sql)  
alldata = cursor.fetchall()  
# 如果有数据返回,就循环输出, alldata是有个二维的列表  
if alldata:  
    for rec in alldata:  
        print rec[0].decode('utf-8')  
  
#注意commit,否则插入操作无效  
conn.commit()  
cursor.close()  
conn.close()







抱歉!评论已关闭.