정보시스템감리사

정보시스템감리사는 정보시스템 전반을 알아야 하는 고급 기술자다.

정보시스템감리사는 정보시스템의 구축 운영에 관한 사항을 종합적으로 점검 평가하고 개선이 필요한 사항을 감리하여 의뢰인에게 권고하는 직업이다. 건축에서 감리를 통해 잘못된 건축물의 문제점을 개선하고 제대로 된 건축물을 짓도록 하는 것처럼 전산 시스템에서도 감리를 통해 잘못된 시스템을 개선하고 제대로 된 시스템을 구축하도록 하는 것이 정보시스템감리의 목적이다.

정보화시대가 진전되면서 정보시스템은 기업이나 기관의 가장 중요한 자산이 되어가고 있다. 기업의 영업 비밀, 인사 기록, 고객 자료 등 각종 중요 정보가 모두 정보시스템 안에 저장되어 있다. 이런 정보시스템은 매우 편리하지만 보안에 취약성이 있기 때문에 사고가 발생할 경우 큰 손실을 가져온다. 이런 손실을 막기 위해서 정보시스템감리가 필요하다. 실제 정보시스템 구축과 운용에서 만나는 많은 위험 요인을 통제하고 시스템에 맞는 설정과 운영에 대한 적절한 방법론을 확립해야 하며, 이를 적용하는 정보시스템 감리 요원이 필요한 것이다.

정보시스템감리는 정보화 추진 방향을 설정하는 기본 설계부터, 정보시스템개발 및 운영상의 효율성, 자료의 신뢰성 및 안전성 등을 종합적으로 검토해 정보시스템 구축과 운영에서 나타날 수 있는 문제점을 사전에 예방하는 작업이다. 정보화시대를 맞이하여 정보자산의 가치가 기업과 기관에서 차지하는 중요성이 커지면서 정보시스템감리의 필요성도 함께 커지고 있다.

정보시스템감리사는 한국전산원이나 민간 감리법인에서 근무한다. 민간 감리법인은 감리 전문 법인으로 존재하기도 하지만 SI업체나 컨설팅 업체에서 감리 업무를 수행하는 경우도 많다. 꽤 많은 감리사들이 SI 업체나 컨설팅 업체의 직원으로 일하면서 컨설팅과 감리 업무를 수행한다.
일반적으로 국내 정보시스템에 대한 주요 공공 프로젝트에 대해서는 한국전산원에서 국가정보화 감리업무를 수행하고 있다. 기업의 경우에는 최근 정보시스템의 감리를 전문적으로 수행하는 민간법인들이 활동을 하고 있다. 2002년에는 20~30개 사이의 감리법인이 활동했으나 이 수는 점차 증가하고 있다.

특히 국가 정보화사업의 원활한 수행과 부실방지를 위해 일정 규모 이상의 주요 공급 프로젝트에 대한 감리실시가 의무화되면서 정보시스템의 감리 시장은 큰 폭으로 성장하고 있다. 따라서 앞으로 정보시스템감리사의 수요는 계속 증가할 전망이다.

감리 업무는 정보시스템의 기획 개발 운영 및 유지 보수 단계 별로 구분하여 수행한다. 정보시스템감리사는 정보시스템 감리 요청이 들어오면 관련 자료를 제출받아 감리를 실시하고 감리보고서를 작성하여 감리 의뢰인에게 통보한다. 이 과정에서 시스템의 분석, 설계, 개발이 제대로 이루어지고 있는지, 시스템의 설계 원칙과 사양에 준거하여 정보시스템이 구축 이행되는지, 정보 자산을 보호하기 위한 요건을 충족하는지를 평가 확인한다. 물론 이 과정에서 미비한 부분은 지속적으로 수정해 시스템의 완전성을 높여나가도록 유도한다.


정보시스템감리사는 40대, 50대 활동 비중이 더욱 많으며 최고의 보수를 받는 직종이다.

정보시스템감리사 관련자격증으로는 한국산업인력공단에서 시행하는 정보관리기술사, 정보처리기사, 정보처리산업기사, 전자계산조직응용기술사, 전자계산기조직응용기사, 전자계산기조직응용산업기사, 정보기술산업기사 등이 있다. 그러나 이 자격증은 기초적인 자격증으로 이 자격증을 취득한다고 해서 정보시스템감리사가 되는 것은 아니다.

해외에서 발행하는 국제자격증으로는 정보시스템감사통제협회(ISACA :Information Systems Audit and Control Association)에서 시행하는 국제공인정보시스템감사사(CISA :Certified Information Systems Auditor) 자격증이 있다. 이 자격증은 세계적으로 널리 인정되는 자격증으로 희소성이 높지만 취득하기 매우 어려운 자격증이다. CISA를 취득한 사람은 국내에서도 소수에 불과해 개인의 능력 향상에 큰 도움이 되며, CISA를 취득한다면 고액 연봉을 받는 정보시스템감리사로 활동할 수 있다.

그외 한국전산원에서 수여하는 국가공인 정보시스템감리사 자격증이 있는데 아무나 취득할 수 있는 것이 아니다. 정보통신 분야에서 일정 수준 이상의 자격을 갖춘 지원자를 선발하여 교육을 실시한 후에, 정보시스템 감리 관련 전문가로 구성된 정보시스템감리사 평가위원회의 심사를 거쳐 수여한다. 따라서 현장에서 꽤 오랜 기간 근무한 사람이 취득할 수 있는 자격증이다.

정보시스템감리사는 정보 시스템의 모든 것을 감리해야 하므로 상당한 수준의 기술력이 필요하다. 시스템 분석, 설계, 개발, 운영, 보수, 유지에 필요한 모든 지식을 갖추어야만 감리가 가능하기 때문이다. 이 때문에 정보시스템의 감리 활동을 할 수 있으려면 특급 기술자 수준 이상이 되어야 한다.

감리사로 활동하기 배워야 할 내용은 다양하다. 정보시스템의 감사업무 프로세스, 정보시스템의 관리, 계획, 조직, 기술 하부구조, 운영실무, 정보자산의 보호, 재해복구, 응용시스템 개발, 구입, 구현, 유지 보수, 업무 프로세스평가, 위험관리, 프로젝트 관리, 감리보고서 작성법 등을 배우는데 시스템에 대한 전반적인 내용을 배운다고 보면 된다.

요구하는 능력이 크고 매우 중요하고 전문적인 일인 관계로 다른 IT 직종에 비해 보수는 매우 높다. 종사자 평균이 월 345만원으로 IT 직종에서는 매우 높은 보수를 받고 있는 직종이다. 더구나 감리 의무화로 일감은 증가하는 반면 인력은 부족해 정보시스템감리사의 보수는 계속 상승하고 있다.

정보시스템감리사는 고졸 이하가 0%, 전문대졸 이하가 2%로 저학력층이 거의 없는 반면 대학원졸 이상이 34%나 되는 고학력 직종이다. 전공은 컴퓨터/통신이 41%, 경영/경제가 29%를 차지한다. 기본적으로 정보시스템감리사로 활동하기 위해서는 4년제 이상의 대학에서 전산계통관련 전공을 하거나, 관련 자격을 취득하는 것이 기본이다. 하지만 무엇보다 현장에서의 다양한 실무경험이 뒷받침되어야 한다. 다양한 현장 경험이 없다면 감리 활동을 수행하기 어렵다.

다양한 현장경험이 필요하다는 것을 증명하는 것은 연령층 비율이다. 일반적으로 지금까지 소개한 대부분의 IT 직종은 20대와 30대 비율이 거의 100%에 달하고 40대 이상은 거의 없는 반면 정보시스템 감리 직종은 거꾸로 40대 비율이 36%로 가장 높고, 50세 이상 고연령자도 31%나 된다. 반면 20대는 10%에 불과하고 30대도 23%에 불과하다. 즉 정보시스템감리사는 많은 경험이 필요한 분야라는 뜻이다. 이 때문에 개발자, 프로그래머, IT컨설턴트 등의 다양한 직종으로 취업했던 IT 종사자의 상당수가 정보시스템감리사를 목표로 경력을 쌓고 있다.

현재 정보시스템감리사로 종사하는 사람이 대부분은 남자다. 이는 정보시스템감리사라는 직종이 비교적 최근에 개척된 직종인 반면 감리사가 되기 위해서는 오랜 경력이 필요한 분야이기 때문이다. 웹디자인이나 프로그래머처럼 학원에서 몇 달 배우면 취업할 수 있는 분야가 아니라 현업에서 10년 이상 개발자나 엔지니어로 근무했던 사람이 감리사로 전환하는 경우가 많기 때문에 여성 인력의 진출이 거의 없는 것이다. 하지만 정보시스템감리사의 업무는 여성에게도 적합하다. 고학력 여성들이 진출하기에 적합한 분야이므로 현재 현업에서 활동하는 IT 종사자라면 정보시스템감리사라는 직종에 목표를 두고 개인 능력을 개발하는 것이 좋다.

function hrefMark(){ }

MySQL Basics -- A Helpful MySQL Tutorial

Introduction

Welcome. This MySQL tutorial is a guide for new MySQL users, providing a reference of very basic, step by step, instructions on how to get started. This MySQL help page also gives more advanced users assistance in upgrading and running multiple versions of MySQL on a computer at the same time.

MySQL is an SQL based relational database management system (DBMS) that runs under a broad array of operating systems. MySQL is frequently used by PHP and Perl scripts. The SQL commands discussed in this tutorial apply to MySQL operating under all operating systems. Only the installation instructions are Windows specific. The focus is on Windows XP Professional and Windows 2000 Professional machines.

We'll be covering the installation of MySQL versions 5.0.51b, 4.1.16 as well as how to configure everything so they'll all be able to run on your system at the same time. Plus, the data directories will be moved to another location in order to make backups easier. If you only want to install one version of MySQL, ignore the instructions relating to the other versions.

If your operating system or versions of MySQL are different, the instructions should still work, but keep an eye out for slight differences, like which working directory you'll need to be in.

Usage:
Commands to type in and items that require appropriate substitutions are displayed like this.
Resulting screen text looks like this.
File names appear in this fashion.

Contents

Windows 2000, XP and NT 4.0 Installation

Log in to your computer using an account having Administrator privileges.

If you're not upgrading, just skip down to the next section.

If you are upgrading, there are MANY changes that you HAVE TO be aware of. Carefully read the pages in the MySQL manual that apply to you. If you intend to jump over a release series in your upgrade (e.g.: going straight from 4.0 to 5.0) you are strongly advised NOT to do so. You should do the upgrade process one release series at a time (e.g.: go from 4.0 to 4.1, then to 5.0).

Backup Old Data

Here's a quick rundown of how to save your old MySQL data so it can be used in your new system.

  1. Open up a Command Prompt window. If you don't know how to do that, go to Start | Run, then type in cmd and hit ENTER.
  2. Switch to the drive which has your present mysql\bin directory. Eg: L:\> C:
  3. Move into the MySQL bin directory: cd mysql\bin
  4. Dump all of your data: mysqldump -u root -p -A -r C:\secure\myolddata.sql
  5. Stop the MySQL service: net stop mysql. If your service has a different name, do this net stop service_name.
  6. The ISAM table format has been deprecated in 4.0 and removed from 5.0. If have some tables in that format, you'll need to fix that now. There are several ways to do this. Here are three possibilities:
    1. sed:
      1. ren C:\secure\myolddata.sql C:\secure\myolddataorig.sql
      2. sed 's/^) TYPE=ISAM/) TYPE=MyISAM/' C:\secure\myolddataorig.sql > C:\secure\myolddata.sql
    2. Perl:
      1. ren C:\secure\myolddata.sql C:\secure\myolddataorig.sql
      2. perl -wpe 's;^\) TYPE=ISAM;\) TYPE=MyISAM;i' < C:\secure\myolddataorig.sql > C:\secure\myolddata.sql
    3. Your favorite text editor: open C:\secure\myolddata.sql then do a search and replace on TYPE=ISAM to TYPE=MyISAM.
  7. Remove the existing service by typing in mysqld --remove. If your service has a different name, do this mysqld --remove service_name
  8. Jump up two directory levels: cd ..\..
  9. Rename your old mysql directory as a backup: ren mysql mysqlold

Get and Install a Recent Version

  1. Download the "Windows ZIP/Setup.EXE" file for the versions you want: 5.0, and/or 4.1. For now, do NOT pick the "Windows Essentials (x86)" or "Without installer (unzip in C:\)" downloads.
  2. Find the downloaded file, unzip it and start the setup program:
    • Via Cygwin:
      1. cd /path/to/file
      2. unzip mysql-version.number-win.zip -d temp
      3. chmod 700 temp/*
      4. explorer temp
      5. Double click on Setup.exe.
    • Via Windows XP:
      1. Open up Windows Explorer. If you don't know how to do that, go to Start | Run, type in explorer and hit ENTER.
      2. Find the downloaded file.
      3. Double click on it.
      4. Windows XP has a built in zip file reader.
      5. In the zip viewer, double click on Setup.exe .
    • Via WinZip or PKZIP for Windows, or other such utilities:
      1. Open up Windows Explorer. If you don't know how to do that, go to Start | Run, type in explorer and hit ENTER.
      2. Find the downloaded file.
      3. Double click on it.
      4. Extract the files.
      5. Flip back to Windows Explorer and double click on Setup.exe .
  3. In the Installation Program:
    • MySQL 5.0.x and 4.1.x:
      1. In the "Please select a setup type" step, click the "Custom" radio button, then "Next."
      2. The next step gives you choices of which components to install and where to install it.

        Click the "Change" button at the bottom right of the dialog box and put in C:\program files\mysql50\ then click "OK"

        If you're upgrading, make sure to click on the plus sign next to the "Developer Components" item, then click on "Scripts, Examples" and set it to "This feature will be installed on the local hard drive."

        Adjust the other entries per your desires. Make sure the "MySQL Server" and the "Client Programs" are selected. Once you have everything lined up as you want, click "Next."

      3. Click "Install."
      4. When you get to the "MySQL.com Sign-Up" step, let's cut to the chase... click the "Skip Sign-Up" radio button and go to "Next."
      5. UN-check "Configure the MySQL Server" and click "Finish."
  4. Taking a moment to make Command Prompt shortcuts now will save loads of time later:
    1. Open Windows Explorer (Start | Run, explorer, ENTER).
    2. Navigate to C:\Documents and Settings\All Users\Start Menu directory.
    3. Create a new directory (File | New | Folder). That makes a new folder called, "New Folder" (imagine that!) which is now ready for you to type in a new name for. So, type in Databases and hit ENTER.
    4. Now hit ENTER again to get into that folder.
    5. Open another Windows Explorer window.
    6. In the Address Bar, type in %UserProfile% and hit the ENTER key. If the Address Bar isn't visible, in Windows Explorer's menu: View | Toolbars | Address Bar.
    7. Navigate to the Start Menu\Programs\Accessories directory.
    8. Select the Command Prompt file.
    9. Hit CTRL-C
    10. Now come back to the "Databases" folder window and hit CTRL-V. That should have pasted a copy of the Command Prompt shortcut in your new directory.
    11. Select the Command Prompt file.
    12. What you do here depends on whether you're installing 5.0 and/or 4.1.
      • MySQL 5.0.x:
        Use the follow these steps verbatim.
      • MySQL 4.1.x:
        Use these steps, but change 50 to 41.
      • Multiple versions:
        Do the steps for 50, make a copy of MySQL 50 Prompt and then follow steps I and II, but change 50 to 41.
      1. Hit the F2 key and rename the shortcut MySQL 50 Prompt then hit ENTER.
      2. Open it's properties via File | Properties and go to the "Shortcut" tab, then the "Start In" box and type the following in, including the quotes: "C:\program files\mysql50\bin"
      3. Go to the "Options" tab and check the "QuickEdit mode" and "Insert mode" boxes.
      4. Go to the "Layout" tab and go to the "Height" box in the "Screen buffer size" section and put in a larger number, like 2000.
      5. Click OK
    13. Now, you'll be able to quickly get to either of the Command Prompts by going to Start | Databases | MySQL 50 Prompt.
    14. Plus, you'll be able to paste commands into the the Command Prompt! To do that, copy the command from this tutorial (or wherever) then go to the Command Prompt window and hit the following keys:
      1. ALT-SPACE (to open the menu in the upper left corner of the window)
      2. E (the access key for Edit)
      3. P (the access key for Paste)
    15. For the rest of this lesson, we'll be calling this these the "MySQL 50 Shortcut" and "MySQL 41 Shortcut"
  5. Time to create the data directories. MySQL's data files should be stored on a drive, or a portion thereof, that contains your other data files. This will simplify finding and backup up your information. The M: drive on my machine is dedicated solely to storing actively used data. That's the location we'll use in this tutorial.
    1. Open up a Command Prompt window. If you don't know how to do that, go to Start | Run, then type in cmd and hit ENTER.
    2. Switch to the drive where the data will be placed: C:\> M:
    3. Make the needed directories:
      • MySQL 5.0.x:
        mkdir mysql50mkdir mysql50\datamkdir mysql50\data\mysqlmkdir mysql50\ibdatamkdir mysql50\iblogs
      • MySQL 4.1.x:
        mkdir mysql41mkdir mysql41\datamkdir mysql41\data\mysqlmkdir mysql41\ibdatamkdir mysql41\iblogs
    4. Copy the default mysql database/privileges to the new location:
      • MySQL 5.0.x:
        copy "C:\program files\mysql50\data\mysql" mysql50\data\mysql
      • MySQL 4.1.x:
        copy "C:\program files\mysql41\data\mysql" mysql41\data\mysql
  6. I suggest putting empty my.cnf files in place in order to keep your MySQL servers from being subverted. While this step isn't strictly necessary, it's better to be safe than sorry. We'll do this via the Command Prompt window we were using above.

    Be aware that Windows considers .cnf files to be a "SpeedDial" configuration file and automaticlaly hides the file extension. You can make the extension visible via Windows Explorer's "hide file extensions" option (Tools | Folder Options | View). Also note that Windows Server 2003 hides the extension even if this option is turned off.

    • Just MySQL 5.0.x:
      1. notepad mysql50\data\my.cnf
      2. In notepad, type in [mysqld] , save the file and exit.
      3. copy mysql50\data\my.cnf "C:\program files\mysql50\data"
    • Just MySQL 4.1.x:
      1. notepad mysql41\data\my.cnf
      2. In notepad, type in [mysqld] , save the file and exit.
      3. copy mysql41\data\my.cnf "C:\program files\mysql41\data"
    • All of the above
      1. notepad mysql50\data\my.cnf
      2. In notepad, type in [mysqld] , save the file and exit.
      3. copy mysql50\data\my.cnf "C:\program files\mysql50\data"copy mysql50\data\my.cnf mysql41\datacopy mysql50\data\my.cnf "C:\program files\mysql41\data"
  7. The my.cnf configuration files need to be put in place. First, we'll put blank files in the default locations in order to prevent the server from potential subversion. Do this via the Command Prompt window we were using above.
    1. notepad C:\my.cnf
    2. In notepad, paste in the following, then adjust the the port numbers and drive letters and paths as needed.

      NOTE: This sample file puts 5.0.x on the default port (3306) and 4.1.x on 3341. These port numbers will be used throughout the rest of the tutorial. So, if you change anything in your my.cnf file, you will need to adjust all of our commands accordingly. On the command line, MySQL uses the -P flag to tell the client which port to connect to, for example -P 3341.

      # This config file contains settings for MySQL versions# 5.0.x and 4.1.x.  Be aware that only one server# instance can be on a given port.  This sample puts# version 5.0.x on MySQL's default port, 3306.  Adjust# the port numbers to suit your situation.[mysql]# Displaying the version number in the prompt# helps when running multiple instances.prompt = mysql\\_\v>\\_[mysqld-5.0]port = 3306basedir = C:/Program Files/mysql50/datadir = M:/mysql50/data/innodb_data_home_dir = M:/mysql50/ibdata/innodb_log_group_home_dir = M:/mysql50/iblogs/innodb_data_file_path = ibdata1:10M:autoextend# Make table names case sensitive.# Ensures portability when moving applications to other os's.set-variable = lower_case_table_names=0# Roll back entire transactions that time out,# OPTION AVAILABLE SINCE 5.0.32.innodb_rollback_on_timeout = 1[mysqld-4.1]port = 3341basedir = C:/Program Files/mysql41/datadir = M:/mysql41/data/innodb_data_home_dir = M:/mysql41/ibdata/innodb_log_group_home_dir = M:/mysql41/iblogs/innodb_data_file_path = ibdata1:10M:autoextend# Make table names case sensitive.# Ensures portability when moving applications to other os's.set-variable = lower_case_table_names=0
    3. Save the file and exit.
  8. Next, we need to "install" the appropriate MySQL services.
    • MySQL 5.0: Open the MySQL 50 Shortcut, pick one of the following and type its command into the Command Prompt:
      1. NT/2000/XP. Named pipes.
        mysqld-nt --install mysql50
      2. Transactions.
        mysqld --install mysql50
      3. Support for debugging MySQL crashes.
        mysqld-debug --install mysql50
    • MySQL 4.1: Open the MySQL 41 Shortcut, pick one of the following and type its command into the Command Prompt:
      1. NT/2000/XP. Named pipes.
        mysqld-nt --install mysql41
      2. Transactions.
        mysqld --install mysql41
      3. Support for debugging MySQL crashes.
        mysqld-debug --install mysql50
  9. Good security procedures call for running services as a non-privileged user. So, let's create such a user and configure the MySQL services to use it:
    1. net user mysql * /add /passwordreq:yes /passwordchg:no /comment:"runs MySQL services"
    2. You'll be prompted for the password.
    3. Perform the following steps for each mysql server instance, substituting your version numbers for the underscores (__):
      1. Start up the services manager by typing in services.msc and hitting ENTER.
      2. Locate the "mysql__" service in the right hand pane and double click it.
      3. Go to the "Log On" tab
      4. Click the "This account" radio button
      5. Type mysql into the box.
      6. Enter the password into the "Password" and "Confirm password" inputs.
      7. Hit OK
  10. Let's lock down the file permissions on the directories we created by entering the following commands into a Command Prompt:
    cacls C:\my.cnf /g administrators:f system:r "authenticated users":r

    If you may get the following error message: The cacls command can only be run on disk drives that use the NTFS file system. Don't worry about it (for now). Skip all the cacls commands in the rest of our tutorial.

    Enter each line below separately because some of them require user confirmation.

    • MySQL 5.0.x:
      cacls M:\mysql50 /t /g administrators:f system:f mysql:ccacls M:\mysql50\data\my.cnf /t /g administrators:f system:rcacls "C:\program files\mysql50" /t /g administrators:f system:f mysql:r "authenticated users":rcacls "C:\program files\mysql50\data" /t /g administrators:f
    • MySQL 4.1.x:
      cacls M:\mysql41 /t /g administrators:f system:f mysql:ccacls M:\mysql41\data\my.cnf /t /g administrators:f system:rcacls "C:\program files\mysql41" /t /g administrators:f system:f mysql:r "authenticated users":rcacls "C:\program files\mysql41\data" /t /g administrators:f
  11. Start the services:
    • MySQL 5.0.x: net start mysql50
    • MySQL 4.1.x: net start mysql41

    If System error 1069 has occurred comes up, your passwords didn't match. You can create a new password by typing net user mysql * into the Command Prompt. Then put that new password into the MySQL services' properties' "Log On" tab.

    Getting a System error 5 has occurred indicates problems getting to the directory containing the MySQL executables (for example, insufficient permissions).

    If you get an error saying System error 1067 has occurred it means a configuration directive in C:\my.cnf couldn't be processed. That can be due to a typographical error in the name or value of a setting. Similarly, the path referred to by the setting's value could be inaccessible due to insufficient permissions.

    To help narrow down what's going on, check out the Event Viewer: Start | Run, then type in eventvwr.msc and hit ENTER. Click the "Application" item in the left pane. Now examine the top of the right hand pane for recent MySQL errors. Double click the first item and look at the message in the "Description" box.

    Either of the following mean there's a boo-boo in the path value assigned to the datadir setting in C:\my.cnf:
    Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
    or
    Warning: Can't create test file
    In this situation, make sure the actual path is a case-sensitive match to the path in the configuration file and that the directories in question have the permissions they need to be accessed by the MySQL daemon. Then try the net start command again.

    Along the same lines, error logs showing Can't find messagefile 'C:\Program Files\mysql\share\english\errmsg.sys'
    points to a mismatch between the basedir value and the actual path to the MySQL executables.

    An unknown variable notice is clear enough, no?

    If there are no MySQL related error messages in the Event Log's Application section, you have a major typo in the C:\my.cnf. Perhaps one of the [mysql...] section headings are wrong.

  12. If you're upgrading and followed our instructions at the top of this tutorial, now it's time to import your old data. These steps assume upgrading from 4.1 to 5.0.
    1. C:\Program Files\mysql50\bin> mysql -u root < C:\secure\myolddata.sql
    2. C:\Program Files\mysql50\bin> mysql -u root -f mysql < ..\share\mysql_fix_privilege_tables.sql

      This SQL file was in the scripts directory prior to version 5.0.38.

      You can ignore all of the query error messages (for example Unknown column, Duplicate column name, etc).

    3. Log into the server using the permissions from your old MySQL installation:
      C:\Program Files\mysql50\bin> mysql -u root -p mysql
    4. The upgrade script gives some privilges that you probably don't want most users having. Let's change them back (adjusting the "otherimportantusers..." below as needed for your system):
      mysql 5.0.51b-community-nt> UPDATE user SET Create_tmp_table_priv='N' WHERE user NOT IN ('root', 'otherimportantusers...');
    5. Exit the client and restart the server:
      mysql 5.0.51b-community-nt> exit
      C:\Program Files\mysql50\bin> net stop mysql50
      C:\Program Files\mysql50\bin> net start mysql50
    6. If you've never done this tutorial's "Tighten MySQL's Security" steps, below, check them out now. If you've already done them, you can jump down to the Start the Client section.
  13. Tighten MySQL's Security

    MySQL has good security controls, but the default installation is wide open. So, if you're doing a new installation, let's close things up before we go any further.

    In the following commands, don't forget that if you changed the ports in the my.cnf file, you'll have to adjust the port numbers here.

    • MySQL 5.0.x:

      Activate the "MySQL 50 Shortcut" we created earlier then type in:
      mysql -u root mysql

    • MySQL 4.1.x:

      Activate the "MySQL 41 Shortcut" we created earlier then type in:
      mysql -u root -P 3341 mysql

    (If you get the following error message:
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    That means the servers didn't stay started. The most likely reason is the my.cnf file has errors in it. Go back to the Start the services step and carefully read the section about checking the Event Viewer logs.)

    Once you are logged in, copy the following queries to Notepad and change NewPw to something unique. Now copy that and paste it into the command prompt window(s) you just opened.

    delete from user where Host <> 'localhost' and User <> 'root';delete from db;update user set Password=password('NewPw') where User='root';flush privileges;exit
  14. Tada!

Quick Tips for Other Windows Operating Systems

If you're using Windows 95, 98 or ME do not run mysqld --install. These operating systems don't have the ability to host a "service." So, you need to run MySQL as a standalone application by executing the command mysqld --standalone.

I haven't run MySQL on these systems myself, so, for more information, check out the Starting MySQL on Windows 95, 98 or Me and Running MySQL on Windows sections of the manual or explore the MySQL Win32 Mailing List Archive.

Start the Client and Log In

We'll be using MySQL 5.0.x here. Adjust the shortcut and port as necessary.

Activate the "MySQL 50 Shortcut" we created earlier and type in
mysql -u root -p
then enter your password when prompted. You will then see the following output:

Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 1 to server version: 5.0.51bType 'help;' or '\h' for help. Type '\c' to clear the buffer.

If your root account doesn't have a password on it, the above command won't work for you. You really need to get on top of security. Log in without the password:

mysql -u root mysql

Then set a password (changing "NewPw", of course):

update user set Password=password('NewPw') where User='root';flush privileges;

If you get an error saying Client does not support authentication protocol requested by server; consider upgrading SQL client when trying to connect, that means your client is from before version 4.1 while the server you are connecting to is using version 4.1 or later. The best solution is to install a current version of the MySQL client.

Creating a Simple Database and Displaying its Structure

Instruct MySQL to setup a new database

mysql 5.0.51b> create database database01;
Database "database01" created.

All that really does is create a new subdirectory in your M:\mysql50\data directory.

Open the database

mysql 5.0.51b> use database01
Database changed

Create a table

mysql 5.0.51b> create table table01 (field01 integer, field02 char(10));
Query OK, 0 rows affected (0.00 sec)

!Enclose entire list of field names between one pair of parentheses.
!Commas are used between each field.
iA space may be used after the comma between fields.
!A comma is not used after last field.
!This, and all SQL statements, are concluded by a semicolon ";".

List the tables

mysql 5.0.51b> show tables;
+----------------------+| Tables in database01 |+----------------------+| table01              || table02              |+----------------------+

List the fields in a table

mysql 5.0.51b> show columns from table01;
+---------+----------+------+-----+---------+-------+| Field   | Type     | Null | Key | Default | Extra |+---------+----------+------+-----+---------+-------+| field01 | int(11)  | YES  |     |         |       || field02 | char(10) | YES  |     |         |       |+---------+----------+------+-----+---------+-------+

Congratulations! Pretty straightforward, eh?

Putting Data into a Table

Insert a record

mysql 5.0.51b> insert into table01 (field01, field02) values (1, 'first');
Query OK, 1 row affected (0.00 sec)

!Enclose entire list of field names between one pair of parentheses.
!Enclose the values to be inserted between another pair of parentheses.
!Commas are used between each field and between each value.
iA space may be used after the comma between fields.

List all the records in a table

mysql 5.0.51b> select * from table01;
+---------+---------+| field01 | field02 |+---------+---------+|       1 | first   |+---------+---------+

Excellent!

Adding Fields

...one field at a time

mysql 5.0.51b> alter table table01 add column field03 char(20);
Query OK, 1 row affected (0.04 sec)Records: 1  Duplicates: 0  Warnings: 0

...more than one at a time

mysql 5.0.51b> alter table table01 add column field04 date, add column field05 time;
Query OK, 1 row affected (0.04 sec)Records: 1  Duplicates: 0  Warnings: 0

!The "add column" must be restated for each column.
!Commas are used between each add column statement.
iA space may be used after these commas.

iThe MySQL Manual fully explains each possible column data type.

Did it work?

mysql 5.0.51b> select * from table01;
+---------+---------+---------+---------+---------+| field01 | field02 | field03 | field04 | field05 |+---------+---------+---------+---------+---------+|       1 | first   | NULL    | NULL    | NULL    |+---------+---------+---------+---------+---------+
Now we're getting somewhere!

Multi-line Command Entry

The MySQL command line interface allows you to put a statement on one line or spread it across multiple lines. There's no difference in syntax between the two. Using multiple lines allows you to break down the SQL statement into steps you may more easily comprehend.

In multiple line mode, the interpreter appends each line to the prior lines. This continues until you enter a semicolon ";" to close out the SQL statement. Once the semicolon is typed in and you hit enter, the statement is executed.

Here's an example of the same exact SQL statement entered both ways:

Single Line Entry

mysql 5.0.51b> create table table33 (field01 integer,field02 char(30));

Multiple Line Entry

mysql 5.0.51b> create table table33
-> (field01
-> integer,
-> field02
-> char(30));

!Don't break up words:

ValidInvalid
mysql 5.0.51b> create table table33
-> (field01
-> integer,
-> field02
-> char(30));
mysql 5.0.51b> create table table33
-> (field01 inte
-> ger,
-> field02
-> char(30));

!When inserting or updating records, do not spread a field's string across multiple lines, otherwise the line breaks are stored in the record:

Standard Operation

mysql 5.0.51b> insert into table33 (field02)
-> values
-> ('Who thought of foo?');

Line Break Stored in Record

mysql 5.0.51b> insert into table33 (field02)
-> values
-> ('Pooh thought
-> of foo.');

Results

mysql 5.0.51b> select * from table33;
+---------+---------------------+| field01 | field02             |+---------+---------------------+|    NULL | Who thought of foo? ||    NULL | Pooh thoughtof foo. |+---------+---------------------+

Insert Some More Records into the Table

Add this record

mysql 5.0.51b> insert into table01 (field01,field02,field03,field04,field05) values
-> (2, 'second', 'another', '1999-10-23', '10:30:00');
Query OK, 1 row affected (0.00 sec)

!Quotes must go around text values.

iStandard date format is "yyyy-mm-dd".
iStandard time format is "hh:mm:ss".
!Quotes are required around the standard date and time formats, noted above.
iDates may also be entered as "yyyymmdd" and times as "hhmmss". If entered in this format, values don't need to be quoted.

iNumeric values do not need to be quoted. This holds true regardless of the data type a column is formatted to contain (e.g. text, date, time, integer).

iMySQL has a useful command buffer. The buffer stores the SQL statements you've entered thus far. Using it keeps you from having to retype the same commands over and over. Let's use this next step as an example.

Add another record using the command buffer (and optional date and time formats)

  1. Hit the up arrow key twice.
  2. Hit the ENTER key.
  3. Type in the new values between a pair parentheses and stick a closing semicolon on the end.
    (3, 'a third', 'more foo for you', 19991024, 103004);
  4. Hit the ENTER key.

Voilà!

Is it in there?

mysql 5.0.51b> select * from table01;
+---------+-----------+------------------+------------+----------+| field01 | field02   | field03          | field04    | field05  |+---------+-----------+------------------+------------+----------+|       1 | first     | NULL             | NULL       | NULL     ||       2 | second    | another          | 1999-10-23 | 10:30:00 ||       3 | a third   | more foo for you | 1999-10-24 | 10:30:01 |+---------+-----------+------------------+------------+----------+

It's in there!

Now, we're almost done...

Updating Existing Records

Modify one field at a time

!Again, be careful with syntax. Quote marks need to go around text but not around numbers.

mysql 5.0.51b> update table01 set field03='new info' where field01=1;
Query OK, 1 row affected (0.00 sec)

Change multiple fields at once

!Remember to put commas between each field you're updating.

mysql 5.0.51b> update table01 set field04=19991022, field05=062218 where field01=1;
Query OK, 1 row affected (0.00 sec)

So, what's up with our data?

mysql 5.0.51b> select * from table01;
+---------+-----------+------------------+------------+----------+| field01 | field02   | field03          | field04    | field05  |+---------+-----------+------------------+------------+----------+|       1 | first     | new info         | 1999-10-22 | 06:22:18 ||       2 | second    | another          | 1999-10-23 | 10:30:00 ||       3 | third one | more foo for you | 1999-10-24 | 10:30:01 |+---------+-----------+------------------+------------+----------+

Update multiple records in one stroke

mysql 5.0.51b> update table01 set field05=152901 where field04>19990101;
Query OK, 3 rows affected (0.00 sec)

Survey says...

mysql 5.0.51b> select * from table01;
+---------+-----------+------------------+------------+----------+| field01 | field02   | field03          | field04    | field05  |+---------+-----------+------------------+------------+----------+|       1 | first     | new info         | 1999-10-22 | 15:29:01 ||       2 | second    | another          | 1999-10-23 | 15:29:01 ||       3 | third one | more foo for you | 1999-10-24 | 15:29:01 |+---------+-----------+------------------+------------+----------+

Wee haw!

Deleting Records

The delete command

mysql 5.0.51b> delete from table01 where field01=3;
Query OK, 1 row affected (0.01 sec)
mysql 5.0.51b> select * from table01;
+---------+---------+----------+------------+----------+| field01 | field02 | field03  | field04    | field05  |+---------+---------+----------+------------+----------+|       1 | first   | new info | 1999-10-22 | 15:29:01 ||       2 | second  | another  | 1999-10-23 | 15:29:01 |+---------+---------+----------+------------+----------+

Time to Call it Quits

mysql 5.0.51b> quit
Bye

In Closing

Now you know some rudimentary commands for running a database in MySQL. Since MySQL is operated by executing SQL calls, you have a broad array of very powerful tools at your disposal. For instance, you're able to display data from several tables at once by joining related fields.

Similarly, SQL permits complex displays, updates or deletions of multiple records which fit specific criteria. So, your next step toward mastery is learning all about SQL.

James Hoffman has put a tutorial page up on the web entitled Introduction to Structured Query Language.

Another thing to note is MySQL offers good security features you'll need to use when operating on networks.

To learn more about MySQL and how to use it, the manual should be your first stop. Also, Paul DuBois' book, MySQL, comes highly recommended. In addition, the archives of the main list and the Win32 list are tremendous resources. The NYPHP user group has started a MySQL interest group you may find helpful.

If you're curious about database portability, you may find the Building Truly Portable Database Applications in PHP presentation interesting.

If you'll be developing hypertext interfaces to your databases using PHP, check out our SQL Solution™. It's a powerful, user friendly, platform independent API that will make your job a snap! Similarly, you might want to examine PEAR DB, a popular open source database abstraction layer (of which I'm the lead developer).

Also, if your scripts accept user input, the Form Solution™ is a handy tool for cleaning user input, generating HTML / XHTML compliant date/time form elements, validating and formatting date/time inputs and holding all variables submitted by a form. The result is improved security and data quality.

Top 10 Windows Mobile Applications

If you followed my previous post about making the most of the Windows Mobile experience, your Windows Mobile phone should already have a slicker interface, seem faster, have new features, be touch friendly as well as feel much more intuitive all around. Needless to say that was the vital first step to getting your money’s worth out of your phone. You might have a setup like this now:

Nifty, no? Well, it’s a good start, but the next stage is getting the applications that allow you to use it To The Max ™. Let’s see what we can recommend.

A good browser. No, a Great browser.

We’re talkin’ powerful, fast, slick web browsin’ here. That nonsense that calls itself Internet Explorer doesn’t deserve a place on your device. Whether or not you’re often surfing the interwebs, ensuring that your web experience is a smooth one will make the difference whether you decide to whip out your phone and wiki something up, or simply say it’s a lost cause. You want a proper browser, one with kinetic scrolling, tabs, and a good rendering engine.

Enter Opera Mobile and Skyfire. Both, as you might’ve guessed by now, are Windows Mobile web browsers. They are also the two best of them all. Opera Mobile is in general more well known and boasts an impressive list of features – tabs, kinetic scrolling, download manager, accelerated page caching (turbo), data synchronisation and cloud computing setups, and even widgets. This does put it on the heavier side of the browser market, with it’s installation file itself a hefty 10MB. On older phones it might take some time to start up and can run out of memory pretty quick. However if your hardware meets the specs, you’ve got yourself a very powerful tool.

The other is a lesser known product – Skyfire. This is definitely slimmer feature-wise but loads pages quick and doesn’t eat up your phone. It’s got the zoom, the drag-scrolling … but most importantly this one displays pages identical to a desktop view whereas Opera tends to wrap text (handy in some cases, not so in others). It also deals with embeddable content very well, allowing you to enjoy flash video without lag pretty easily. It also comes with a nifty start-page which is basically a feed reader – giving you snapshots of the latest news which you can tweak to your interests.

Apps for music and videos

Windows Mobile comes bundled with Windows Media Player, which can play some common files but chokes on anything else you might want.

Here we have a few nominees, including the must-have Core Media Player. The Core Media Player began as freeware but now is available as a paid application. There’s no problem with getting the older free version, it’s still extremely good and will handle almost any codec you throw at it.

Those enjoying the iPhone feel might look towards S2P, a music player that copies the iPhone music player almost completely, not to mention integrates rather nicely with S2U, an application which locks your phone like the iPhone does. It’s also well supported on several home screen media player control applications.

If you’re a multi tasker, it’s normally a huge convenience if you have a way to pause/play, next and previous songs right from the homescreen. In Windows 6.5.1 this is possible with the Titanium layout which integrates with the default Windows Media Player, allowing you to scroll between songs. If not using WMP or not on 6.5.1 this functionality is also available with several shells, including SPB Mobile Shell 3.

The ultimate penknife of utilities

If you’re going to actually use your phone, you need a way to keep it ship shape and mess around when you feel like it. Without delaying further I’m going to introduce you to Total Commander, a file manager (and registry editor, if you’re into that sort of thing) that should exist on every device.

Another would undoubtedly be cleanRAM by htcAddicts.com. It does exactly what it name says – it cleans up lost RAM and can make your device speed up a tad bit after a few days of use – say goodbye to having to soft reset or restart your device whenever it gets too laggy!

Advanced Config (pictured above) makes it easy to tweak your OS to your liking. From which softkeys do what, the layout of your dialer and comm manager, what effects are enabled… it’s all there and you’ll find perhaps one of those little things that don’t look like much but mean much.

A way to read those RSS feeds

People on the go should really take advantage of RSS feeds. Most computer users still remain ignorant of this wonder and it’s time for that to stop. For the uninitiated RSS feeds take the news away from the website and thus allow you to keep track of many news sources at your leisure – be it following the BBC, your favourite blogs, or even the latest Garfield comic. It’s your own personal newspaper that’s updated realtime and only contains articles you’re interested in.

It’s both D-Pad and touch friendly, supports importing opml files and scheduled updates. Yep, it’s pRSS Reader. I’ve tried a good deal and this is the only one that works both reliably and well.

Your own personal library

If you’re still unacquainted with ebook readers that’s OK – perhaps reading from a screen just isn’t for you. If it is, however, you’ll need an ebook reader on your phone. I’d like to recommend Haali Reader. It’s an excellent and small application – it remembers your position in all and any file even after closing (a lifesaver), has customisable fonts, sizes and colours, supports autoscrolling, assigned buttons, fullscreen, UTF, and of course supports a good deal of popular ebook formats. It shows a lovely timeline at the bottom with divisions for chapters (if recognised) and bookmarking support.

That’s enough for part 1, in part 2 we’ll cover another 5 awesome (but less awesome than the first 5) applications that you should dump on your device.

Sponsored link: BestWindowsMobileApps – an unbiased and verbose review site for windows mobile applications.

Top 10 Cell Phones

Need a break from your laptop? These productivity phones offer a lot more than the ability to make calls. Here are the 10 best smartphones available today.

Edited by Ginny Mies, PC World

Jan 22, 2010 5:00 pm

1. Motorola Droid

Keyboard: Yes

Bottom Line: The first Android 2.0 phone impresses with a strong suite of Web features and a stunning 3.7-inch display, but some users might have trouble with the shallow keyboard.


2. Apple 32GB iPhone 3GS

Keyboard: No

Bottom Line: Performance enhancements distinguish the otherwise evolutionary step-up iPhone 3GS from its previous iterations.

$799.00 - $878.87 Check Prices

3. Google Nexus One

Keyboard: No

Bottom Line: The Google Nexus One impresses with a stunning AMOLED display, speedy performance, and cool tweaks to the Android OS; but some network issues prevent it from being a superphone.


4. Motorola Cliq

Keyboard: Yes

Bottom Line: The beautifully designed Motorola Cliq is a social butterfly's dream phone, but others may find the MotoBlur user interface overwhelming.


5. Research in Motion BlackBerry Bold 9700

Keyboard: Yes

Bottom Line: The best BlackBerry available, the Bold 9700 packs a multitude of features into a sophisticated, slimmed-down design.

$0.01 Check Prices

6. T-Mobile myTouch 3G

Keyboard: No

Bottom Line: The T-Mobile myTouch 3G is a big improvement from its predecessor, but the physical keyboard is sorely missed.


7. Palm Pre Plus

Keyboard: Yes

Bottom Line: With expanded memory and new software capabilities, the Pre Plus is definitely an improvement over its predecessor, but it still has some quirks.


8. Palm Pre

Form Factor: Candy bar

Bottom Line: The Pre's webOS software is touch-friendly and fun, but the cramped QWERTY keyboard detracts from the phone's usability.


9. Samsung Behold II

Keyboard: Yes

Bottom Line: With a gorgeous AMOLED display and an excellent camera, the pricey Samsung Behold II will appeal to multimedia junkies with deep pockets.


10. Research in Motion BlackBerry Tour 9630

Keyboard: Yes

Bottom Line: The BlackBerry Tour entices with an ergonomic keyboard and gorgeous display, but the omission of Wi-Fi disappoints.

Windows Mobile users have more access to third party applications than any other Mobile Operating system user on the market. In this article I examine my favorite top 10 Windows Mobile applications, the list includes both freeware and software applications and focuses on different areas of use.

Introduction

One huge advantage Windows Mobile has over other Mobile Operating System users is the vast number of add-ons,freeware applications, and paid software. There are literally tens of thousands of programs available, and whilemany of those applications are useful searching for the top upgrades can be mind boggling, that's why i've puttogether this Top 10 list for Windows Mobile users.

Keep in mind some of the applications listed will only work on newer Windows Mobile 6.0 and Windows Mobile 6.1 Operating systems, while others may work fine on other versions of Windows Mobile.

The programs listed below are also in no particular order, as they each offer their own area of expertise, I simply listed them as they came to mind.

1. Top Audio Freeware For Windows Mobile 6.0 And 6.1

SRS WOW HD Audio is freeware, meaning its absolutely free. The program allows users to create enhanced audioofferings for their Windows Mobile based devices. The program requires at least Windows Mobile 6.0 and allowsusers to create a full audio spectrum, this means you can utilize your devices speakers at one level and thenuse your headphones at a completely different level for better headphone output. Just like equalizers found on your computer you can easily slide around audio effects until you find the sound you're looking for.

2. Best Video Player For WIndows Mobile Devices

If you watch alot of videos on your cellular device there is no better player available then the TCPMP player, theapplication supports the top formats available including DivX, XviD, and MPEG2. The application also smooths outany hiccups normally realized on devices. I tested it on an HTC TyTN II and on a slower HTC Touch with only 200mhzand the video was smooth and loaded without a problem, even when using my memory card to play the video.

3. Best Internet Browsing Application For Windows Mobile 6.0 and 6.1

The Opera Mini Browser has always been ahead of the Windows Mobile Internet Explorer Offering, and now with OperaMini 9.5 mobile browsing has improved leaps and bounds. The application allows for easy Zoom in and Zoom out screentaps meaning you see the whole webpage and zoom into sections.

It also allows for easy bookmarking, renders pagesmore quickly than other offerings and supports JavaScript and Flash applications. You literally see the web as itis intended to be seen. A must have for internet heavy users.

4. Best PC To Device Sync Option

ActiveSync is great if you want to simply transfer information between your device and your PC, with MyMobilerhowever users receive even more abilities. For instance, MyMobiler users can literally control their device fromtheir desktop. This allows users to see their device on their desktop after the program has been installed on boththeir phone and their desktop. Once installed users can use their mouse to move around their phones operatingsystem, and even type messages with their PC's keyboard.

If you need to send long emails via your devices outlookbut don't have outlook access on your computer this application can go a long way, allowing your devices MicrosoftExchange Server to be accessed via your phone, while typing long email messages via your computer. Its also grea twhen you need to transfer a lot of files and want to use a mouse rather than a more frustrating stylus option.

5. Best Data Management Tool - MoDaCo NoData

This application allows you to easily disable all data connections, yet you can continue to use your devices phone feature. This application is great if you're travelling and don't want to pay exhorbited data roaming fees. Its a simple program that can save you thousands in data costs.

6. Best Google Offering For Windows Mobile Operating Systems- Google Maps

Google is quickly becoming the king of Freeware applications and Google Maps mobile application leads the way. This mapping software will not only allow you to pull up locations by address, you can also use your on-board GPS to trace your route and finddirections to your required locations.

The free application also takes advantage of Googles huge database of business information, for instance you can type "Barbershop" into the Google Maps search bar and instantly findbarbershops in your area. Google Maps unlike the $99 TomTom Navigator 6 software isn't limited to 6-10 millionpoints of interest areas, but rather updates as new information becomes available.

Adding to the list of Google Maps features, users can click on phone numbers that display and their phone will automatically call the location, this means you canliterally make reservations and then instantly find driving directions. Google Maps is now offering voicedirections as well, making it not only the best option, but a free option that blows the paid GPS market away.

The Google Maps API will also allow users to take advantage of Assisted GPS which requires a data connection and can triangulate GPS positions within a few feet when cell phone towers are present.

7. Best Windows Mobile Search Program - Windows Mobile Live Search

Since Microsoft obviously develops the Windows Mobile Live Software it should come as no surprise that the best search option for the device is their Windows Mobile Live Search Application, but it goes one step further allowingfor fast and well targeted web searches, heck you can even do it hands free. First like our Google Maps application listed above, the Windows Mobile Live Search application does allow for mapping to selected locations, it even provides turn by turn directions and satellite imagery. Where it really shines though is its ability to find the cheapest gas stations in your area, while showing you movie showtimes and other up-to-the-second interactiveofferings for your area.

Best of all the application can work hands free. If you're driving you simply speak a business name or an address and the application goes to work for you. You can even search hands free on the weballowing you to use Windows Live Search to find the information you need. Using hands free search you can even lookat weather, stocks, news sections and more. Its a free application that integrates all the best of search into one easy to access, easy to install, and easy to use application.

Read on for the final three best Windows Mobile applications.



Read more: http://www.brighthub.com/mobile/windows-mobile-platform/articles/6075.aspx#ixzz0i8TM2VTz

8. Best "EASY ACCESS" Contacts Management Application - iContact v0.76

If you make a lot of calls on the fly you probably want to access your contacts easily and more than likely with one handed navigation, if that's the case I would suggest taking a look at iContact, its an application that uses iPhone-like slider capabilities to slide through contact choices, while also allowing users the ability to push large-lettered icons to find names in their list.

Once the name you want to dial if found you can simply tap on that name and your device begins dialing. The application lacks an "add contact" button, but for finding contacts on the go its definitely a must have that uses almost no system resources, displays contact numbers, and allows for easy one tap calling abilities.

9. Best Instant Messaging Application For Windows Mobile

I remember when Microsoft and AOL use to be bitter enemies, now it turns out that the AOL Instant Messenger, commonly referred to as AIM, is the best Windows Mobile Instant Messenger program available. The application allows users to take advantage of the most popular parts of the desktop version.

Users can add and deleted friends, blockthem, add away messages and create new away messages. The AIM application even lets users check their buddies profile, turn on sounds and notifications, change the style they view instant messages in, and check the online and offline status of their friends.

The application even has an easy one click upgrade button, allowing users to always make sure they have the newest version of the application. Users can also see their friends buddy icons andsort their friends, family, and other people into groups they define. Another free application that works as wellas the original desktop version, minus the gaming capabilities and other Desktop centric themes. Think of it as a slimmed down version of AIM that offers only the components that make sense for mobile users, definitely a well thought out application for Windows Mobile Cell phone users.

10. Best Email Application. That Isn't Exchange Server Based

I chose to include the Blackberry Connect application only because some users don't have a choice, their offices run on Blackberry Enterprise Servers also known as BES, and therefore it becomes a necessity. However I also added it because Blackberry Connect provides added security, offers excellent email displaying via threaded messaging, andsupports a wide variety of formats including Microsoft Word, Excel and PowerPoint, along with Adobe, and other formats. It also allows Windows Mobile users to access the device of their choice.

Blackberry Connect however is only available on certain Windows Mobile devices and it does carry an additional monthly charge. Luckily the charge is usually under $15/month and offers the ability to stay away from bulky Blackberry devices made by Research InMotion.

Conclusion

The Windows Mobile Applications listed above are the very same offerings I take advantage of on my Windows Mobile based HTC TyTN II. I find that easy application offers better use of their respective areas than other similar applications offered both on the freeware and software markets.

I'll continue to use this section to update my choices as more useful applications become available, in the meantime enjoy these useful and fun applications, and always remember to check with the developers website to determine if the applications are compatible with your devices and your version of Windows Mobile.


출처 : http://www.brighthub.com/mobile/windows-mobile-platform/articles/6075.aspx

Gartner Identifies the Top 10 Consumer Mobile Applications for 2012

STAMFORD, Conn., November18, 2009 — Gartner, Inc. has identified the top 10 consumer mobile applications for 2012. Gartner listed applications based on their impact on consumers and industry players, considering revenue, loyalty, business model, consumer value and estimated market penetration.

“Consumer mobile applications and services are no longer the prerogative of mobile carriers,” said Sandy Shen, research director at Gartner. “The increasing consumer interest in smartphones, the participation of Internet players in the mobile space, and the emergence of application stores and cross-industry services are reducing the dominance of mobile carriers. Each player will influence how the application is delivered and experienced by consumers, who ultimately vote with their attention and spending power.”

“The ultimate competition between industry players is for control of the ‘ecosystem’ and user experience, and the owner of the ecosystem will benefit the most in terms of revenue and user loyalty,” Ms. Shen said. “We predict that most users will use no more than five mobile applications at a time and most future opportunities will come from niche market ‘killer applications’.”

The top 10 consumer mobile applications in 2012 will include:

No. 1: Money Transfer
This service allows people to send money to others using Short Message Service (SMS). Its lower costs, faster speed and convenience compared with traditional transfer services have strong appeal to users in developing markets, and most services signed up several million users within their first year. However, challenges do exist in both regulatory and operational risks. Because of the fast growth of mobile money transfer, regulators in many markets are piling in to investigate the impact on consumer costs, security, fraud and money laundering. On the operational side, market conditions vary, as do the local resources of service providers, so providers need different market strategies when entering a new territory.

No. 2: Location-Based Services
Location-based services (LBS) form part of context-aware services, a service that Gartner expects will be one of the most disruptive in the next few years. Gartner predicts that the LBS user base will grow globally from 96 million in 2009 to more than 526 million in 2012. LBS is ranked No. 2 in Gartner’s top 10 because of its perceived high user value and its influence on user loyalty. Its high user value is the result of its ability to meet a range of needs, ranging from productivity and goal fulfillment to social networking and entertainment.

No. 3: Mobile Search
The ultimate purpose of mobile search is to drive sales and marketing opportunities on the mobile phone. To achieve this, the industry first needs to improve the user experience of mobile search so that people will come back again. Mobile search is ranked No. 3 because of its high impact on technology innovation and industry revenue. Consumers will stay loyal to some search services, but instead of sticking to one or two search providers on the Internet, Gartner expects loyalty on the mobile phone to be shared between a few search providers that have unique technologies for mobile search.

No. 4: Mobile Browsing
Mobile browsing is a widely available technology present on more than 60 percent of handsets shipped in 2009, a percentage Gartner expects to rise to approximately 80 percent in 2013. Gartner has ranked mobile browsing No. 4 because of its broad appeal to all businesses. Mobile Web systems have the potential to offer a good return on investment. They involve much lower development costs than native code, reuse many existing skills and tools, and can be agile — both delivered and updated quickly. Therefore, the mobile Web will be a key part of most corporate business-to-consumer (B2C) mobile strategies.

No. 5: Mobile Health Monitoring
Mobile health monitoring is the use of IT and mobile telecommunications to monitor patients remotely, and could help governments, care delivery organizations (CDOs) and healthcare payers reduce costs related to chronic diseases and improve the quality of life of their patients. In developing markets, the mobility aspect is key as mobile network coverage is superior to fixed network in the majority of developing countries. Currently, mobile health monitoring is at an early stage of market maturity and implementation, and project rollouts have so far been limited to pilot projects. In the future, the industry will be able to monetize the service by offering mobile healthcare monitoring products, services and solutions to CDOs.

No. 6: Mobile Payment
Mobile payment usually serves three purposes. First, it is a way of making payment when few alternatives are available. Second, it is an extension of online payment for easy access and convenience. Third, it is an additional factor of authentication for enhanced security. Mobile payment made Gartner’s top 10 list because of the number of parties it affects — including mobile carriers, banks, merchants, device vendors, regulators and consumers — and the rising interest from both developing and developed markets. Because of the many choices of technologies and business models, as well as regulatory requirements and local conditions, mobile payment will be a highly fragmented market. There will not be standard practices of deployment, so parties will need to find a working solution on a case-by-case basis.

No. 7: Near Field Communication Services
Near field communication (NFC) allows contactless data transfer between compatible devices by placing them close to each other, within ten centimeters. The technology can be used, for example, for retail purchases, transportation, personal identification and loyalty cards. NFC is ranked No. 7 in Gartner’s top ten because it can increase user loyalty for all service providers, and it will have a big impact on carriers' business models. However, its biggest challenge is reaching business agreement between mobile carriers and service providers, such as banks and transportation companies. Gartner expects to see large-scale deployments starting from late 2010, when NFC phones are likely to ship in volume, with Asia leading deployments followed by Europe and North America.

No. 8: Mobile Advertising
Mobile advertising in all regions is continuing to grow through the economic downturn, driven by interest from advertisers in this new opportunity and by the increased use of smartphones and the wireless Internet. Total spending on mobile advertising in 2008 was $530.2 million, which Gartner expects to will grow to $7.5 billion in 2012. Mobile advertising makes the top 10 list because it will be an important way to monetize content on the mobile Internet, offering free applications and services to end users. The mobile channel will be used as part of larger advertising campaigns in various media, including TV, radio, print and outdoors.

No. 9: Mobile Instant Messaging
Price and usability problems have historically held back adoption of mobile instant messaging (IM), while commercial barriers and uncertain business models have precluded widespread carrier deployment and promotion. Mobile IM is on Gartner’s top 10 list because of latent user demand and market conditions that are conducive to its future adoption. It has a particular appeal to users in developing markets that may rely on mobile phones as their only connectivity device. Mobile IM presents an opportunity for mobile advertising and social networking, which have been built into some of the more advanced mobile IM clients.

No. 10: Mobile Music
Mobile music so far has been disappointing — except for ring tones and ring-back tones, which have turned into a multibillion-dollar service. On the other hand, it is unfair to dismiss the value of mobile music, as consumers want music on their phones and to carry it around. We see efforts by various players in coming up with innovative models, such as device or service bundles, to address pricing and usability issues. iTunes makes people pay for music, which shows that a superior user experience does make a difference.

Additional information is available in the Gartner report “Dataquest Insight: The Top Ten Consumer Mobile Applications for 2012." The report is available on Gartner’s website at http://www.gartner.com/resId=1205513.

Contacts:


Christy Pettey
Gartner
+1 408 468 8312
christy.pettey@gartner.com

Holly Stevens
Gartner
+44 0 1784 267412
holly.stevens@gartner.com


About Gartner:
Gartner, Inc. (NYSE: IT) is the world's leading information technology research and advisory company. Gartner delivers the technology-related insight necessary for its clients to make the right decisions, every day. From CIOs and senior IT leaders in corporations and government agencies, to business leaders in high-tech and telecom enterprises and professional services firms, to technology investors, Gartner is the indispensable partner to 60,000 clients in 10,000 distinct organizations. Through the resources of Gartner Research, Gartner Consulting and Gartner Events, Gartner works with every client to research, analyze and interpret the business of IT within the context of their individual role. Founded in 1979, Gartner is headquartered in Stamford, Connecticut, U.S.A., and has 4,000 associates, including 1,200 research analysts and consultants in 80 countries. For more information, visit www.gartner.com.

Using libmysqld with Microsoft Visual C++ 2008Express

Filed under: Uncategorized — lstigile @ 7:46 pm
Tags: ,

[ Note: this post was updated on Dec 2, 2009 to correct dashes. In the original post, dash dash -- was showing up as a single dash. This is noted in the comments and has been corrected in the text below.]

These are very (very) basic instructions for setting up a very simple application with Microsoft Visual C++ 2008 Express to use the MySQL Embedded Library (libmysqld).

The MySQL Embedded Library is a full version of the server that is available as a dynamic or static library. Developers can run the library inside their application. It’s extremely fast, easy to distribute and it’s ideal for stand-alone applications. More information about the library can be found at http://dev.mysql.com/doc/refman/5.1/en/libmysqld.html

Having little experience using Visual C++, I’ve struggled to find instructions for setting up a project to use a dynamic library. I finally got it to work thanks to Ulf Wendel’s blog about building a windows client using the Connector/C++ ( http://blog.ulf-wendel.de/?p=215 ). I was able to take his tutorial, substitute the appropriate libmysqld entries and compile the project. If you get lost following my instructions, refer back to Ulf’s blog.

To develop a libmysqld application, you’ll need data files, the error message file ( errmsg.sys ), the appropriate libraries and header files. To get these files, I’d recommend downloading and installing the full version of the server. Also, it’s easier to design and build your database using the standard version of the server. Once you have some data, stop the MySQL service and then create your application using libmysqld.

Here’s the process that I used.

Download the Windows MSI Installer (x86) from http://dev.mysql.com/downloads. For this example, I downloaded and installed version 5.1.34. I selected the option for a standard install. After the install, you can create tables and design your database as needed. For this example, I’m going to use the “user” table, which installs with MySQL.

After the install, go to the services control panel ( Start | Control Panel | Administrative Tools | Services ) and stop MySQL. You might also change the Startup type to “manual” to ensure that it doesn’t start on reboot and cause a conflict with your project.

Locate required directories for setting up the project:

1) Data Files

On Windows, the default location for data files is C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data We’ll be accessing the user.MYD MyISAM table, which is located in the .\mysql subdirectory. Similarly, If you were to create a database named world with a city table, there would be a corresponding world directory and city.MYD MyISAM table in the data directory.

2) Error Message File

The error message file ( errmsg.sys ) is required to start libmysqld. By default, it’s located at C:\Program Files\MySQL\MySQL Server 5.1\share\english

3) Header Files

C:\Program Files\MySQL\MySQL Server 5.1\include

4) Embedded Library

C:\Program Files\MySQL\MySQL Server 5.1\Embedded\DLL\release

Copy the libmysqld.dll from the embedded library path (above) to the c:\windows\system32 directory (or anywhere in your search path). For deployment, you’ll probably want to include the embedded library with the executable.

Time to setup up Microsoft Visual C++ Express

Launch Microsoft Visual C++ Express. From the main menu, select File | New| Project

Choose a Win32 Console Application

g1

Select OK and Finish.

Right-click the project name in the Solution Explorer and select Properties.

g2

Expand Configuration Properties, C/C++ Properties and addthe following for the Additional Include Directories:

C:\Program Files\MySQL\MySQL Server 5.1\include

g3

Expand Linker, select General andadd the following toAdditional Library Directories: C:\Program Files\MySQL\ MySQL Server 5.1\ Embedded\ DLL\releaseg4

Select Linker, Input and add the following for Additional Dependencies: libmysqld.libg5

Select OK to save the setting and return to the project.

Copy the following into the source file ( my copy is named sample.cpp ) Overwrite any existing code in the file.

#include “stdafx.h”

#include <stdlib.h>

#include <iostream>

#include <stdio.h>

#include <stdarg.h>

#include <windows.h>

#include <mysql.h>

MYSQL *mysql;

MYSQL_RES *results;

MYSQL_ROW record;

static char *server_options[] = { “mysql_test”, --datadir=C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/data,

--language=C:/Program Files/MySQL/MySQL Server 5.1/share/english", NULL };

int num_elements = sizeof(server_options)/ sizeof(char *) – 1;

static char *server_groups[] = { “libmysqld_server”, NULL };

int main(int argc, char* argv[])

{

int retval;

retval = mysql_library_init(num_elements, server_options, (char **) server_groups);

mysql = mysql_init(NULL);

mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

mysql_real_connect(mysql, NULL,“root”,NULL, “mysql”, 0, NULL, 0);

mysql_query(mysql, “SELECT user, host FROM user”);

results = mysql_store_result(mysql);

while((record = mysql_fetch_row(results))) {

printf(“%s – %s \n”, record[0], record[1]);

}

mysql_free_result(results);

mysql_close(mysql);

return 0;

}

At this point, you should be able to build and run your project. The output should look like this.

g6

It’s a simple listing of the users in the mysql table.

The following line of code is critical:

static char *server_options[] = { “mysql_test”, --datadir=C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/data,

--language=C:/Program Files/MySQL/MySQL Server 5.1/share/english", NULL };

You must have a datadir and a language file. Note the forward slash in the directory paths. Of course, these paths can be located anywhere. You’ll probably want to move these folders to a subdirectory under your application install. If you don’t see an error log in the data directory, that’s also an indicator that these paths are incorrect.

I hope someone finds this useful.

25 Comments »

  1. I would not recommend to set datadir to the installation directory/data on Vista or later.
    The file permissions/integrity settings are such that resulting program needs elevation to run properly, even for Administrators (http://bugs.mysql.com/bug.php?id=38373)

    It is safer to copy the datadir somewhere else.

    Comment by wlad — May 19, 2009 @ 11:17 pm | Reply

  2. Hi,
    Thanks for putting this together.
    I followed your instructions (I am using VS 2008 C++ full version though). And I get the following run-time error in the console at:
    retval = mysql_library_init(num_elements, server_options, (char **) server_groups);

    “The thread ‘Win32 Thread’ (0×1ba0) has exited with code 1 (0×1).
    The thread ‘Win32 Thread’ (0×90c) has exited with code 1 (0×1).
    The thread ‘Win32 Thread’ (0×264c) has exited with code 1 (0×1).
    The thread ‘Win32 Thread’ (0×25c4) has exited with code 1 (0×1).
    The program ‘[6200] mysql_embedded.exe: Native’ has exited with code 1 (0×1).”

    (My app is called mysql_embedded.exe)

    Do you know why this is happening? Thanks.

    Comment by gmk — June 4, 2009 @ 3:41 am | Reply

  3. Is it possible that your data directory is not specified correctly? If I change my datadir path to an invalid path, I get similar errors. Perhaps you can post the following for your project along w/ what you have in that directory:

    static char *server_options[] = { “mysql_test”, “–datadir=C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/data”, “–language=C:/Program Files/MySQL/MySQL Server 5.1/share/english”, NULL };

    I don’t think it’s getting this far, but you might also check for the error log in your data directory to see if there is any info.

    Comment by Lee Stigile — June 4, 2009 @ 3:43 pm | Reply

  4. Hi gmk,

    I had the same problem before, and I am using VS 2003 full version. Everything worked after I used “–data” and “–language” instead of “-data” and “-language”. Hope that helps.

    Thanks Lee for a much needed and helpful article! =)

    Kind regards,
    IT

    Comment by IT — June 15, 2009 @ 4:14 am | Reply

  5. Sorry, it appears that the double ‘-’ are turned into single dashes…

    Comment by IT — June 15, 2009 @ 4:18 am | Reply

  6. Hi Lee and IT,
    Thanks for your feedback but it still does not work. A couple of things:

    1. I have copied the data directory and language to a simpler folder structure (c:\mysql_embedded), but still no luck.
    2. I am using Vista.
    3. your “mysql_test” argument in your server_options array, is that supposed to be a sub directory in the data directory? mine is just called “mysql”.
    4. tried that double dash, but nothing.
    5. there is no err file being generated in the data directory.

    thanks for your help.

    Comment by gmk — June 15, 2009 @ 4:57 am | Reply

  7. Regarding #3, the first argument in the server_options array is ignored (http://dev.mysql.com/doc/refman/5.1/en/mysql-library-init.html).

    Perhaps there’s a version mismatch between libmysqld.dll, libmysqld.lib and errmsg.sys? You might search your system for these files and update with the latest 5.1 versions.

    Also, feel free to send the project files directly to me, I’d be glad to run on a couple systems here.

    Comment by Lee Stigile — June 15, 2009 @ 3:35 pm | Reply

  8. Hi,
    Thaks for your tutorial,can you give an idea about how to relate with Visual c++ 2005 and mysql.

    Comment by TT — July 13, 2009 @ 9:02 am | Reply

  9. Hi,

    Thank you for such a useful post.

    Comment by Saif — August 19, 2009 @ 12:52 pm | Reply

  10. Hi,
    That’s a nice tutorial, but since I am completely new in mysql and I am dealing with VC++ from relatively soon, I am encountering errors I don’t have a clue of.
    As I am executing this sample program in debug mode I get some weird “first chance” exception and execution stops at line:
    mysql_real_connect(mysql, NULL,”root”, NULL, “mysql”, 0, NULL, 0);

    I’ve tried putting the password for the root account in the place of the second NULL with no success.
    This is what is residing in the Output tab:

    ’sample.exe’: Loaded ‘C:\Documents and Settings\Pavlin\My Documents\Visual Studio 2008\Projects\sample\Release\sample.exe’, Symbols loaded.
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\ntdll.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\kernel32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\libmysqld.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\wsock32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\ws2_32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\advapi32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\rpcrt4.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\secur32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\msvcrt.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\ws2help.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\user32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\gdi32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcr90.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\imm32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\mswsock.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\dnsapi.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\winrnr.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\wldap32.dll’
    ’sample.exe’: Loaded ‘C:\WINDOWS\system32\rasadhlp.dll’
    First-chance exception at 0×10018bc1 in sample.exe: 0xC0000005: Access violation writing location 0×0000035c.
    Unhandled exception at 0×10018bc1 in sample.exe: 0xC0000005: Access violation writing location 0×0000035c.
    The program ‘[2484] sample.exe: Native’ has exited with code 0 (0×0).

    Do you have an idea what could be wrong?

    Comment by Pavlin — August 24, 2009 @ 1:25 pm | Reply

  11. Is there anything in the error log ( *.err file in the data directory) ? Is there any chance that the port is already in use?

    Comment by Lee Stigile — August 24, 2009 @ 9:03 pm | Reply

  12. On every program run the .err file gets:
    “InnoDB: The log sequence number in ibdata files does not match
    InnoDB: the log sequence number in the ib_logfiles!
    090825 10:21:26 InnoDB: Database was not shut down normally!
    InnoDB: Starting crash recovery.
    InnoDB: Reading tablespace information from the .ibd files…
    InnoDB: Restoring possible half-written data pages from the doublewrite
    InnoDB: buffer…”
    at the end. And it is located exactly at “C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/data/”
    And after few tests and running step by step, I noticed, that it actually throws the exception right after executing:
    mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
    and then the green arrow points to the next line.

    If I understand right, the port is set – 0.
    mysql_real_connect(mysql, NULL,”root”, NULL, “mysql”, 0, NULL, 0)
    So I don’t know what the chance is that it is used. But I am not sure if it matters, if it breaks before executing that line.

    Comment by Pavlin — August 25, 2009 @ 7:28 am | Reply

  13. Sorry I bothered you. There was mistake in MY code causing mysql to be NULL at execution of mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
    Thats what the problem was. Sorry one more time and thanks for the nice howto.

    Comment by Pavlin — August 25, 2009 @ 7:43 am | Reply

  14. Yes, using libmysqld.dll is easy and convinient.

    But do you know that you do NOT have a right to redistribute libmysqld.dll with your app unless you either:
    1. open your app source code to the whole world (GPL license)
    or
    2. buy commercial license from MySQL (now SUN) – it is not clear how much it costs
    Does anybody wants to comment this?

    Comment by careful_guy — August 26, 2009 @ 5:30 am | Reply

  15. First, thanks for this set of instructions.

    If you copy the code into Visual Studio, you’ll run into problems:

    1. All the double quote marks have to be replaced with ordinary quote marks.
    2. The minus sign in the following line of code became a dash, confusing the compiler, which gave a bogus error, confusing two programmers. It needs to be replaced:

    int num_elements = sizeof(server_options)/ sizeof(char *) – 1;

    Comment by Steve Miller — August 27, 2009 @ 5:25 pm | Reply

  16. Cool site, love the info.

    Comment by Bill Bartmann — September 3, 2009 @ 9:55 pm | Reply

  17. why can’t I use an InnoDB database? with libmysqld can you only read MyISAM tables? (like all tables mysql are)

    Comment by EvIl_DeViL — September 8, 2009 @ 1:58 pm | Reply

    • Hello — You should be able to access the innodb database. You might want to check your error log for specific error information.

      Comment by Lee Stigile — September 8, 2009 @ 7:24 pm | Reply

      • with the same code i can access to MyISAM tables… if I change the table type to Inno I can’t access them. here’s my InnoDB log… I copied it from Data directory and pasted to my project dir.

        ————————————InnoDB LogFile————————————
        090909 1:08:58 [Note] Plugin ‘FEDERATED’ is disabled.
        090909 1:08:58 InnoDB: Started; log sequence number 0 172027
        090909 1:08:58 [Note] Event Scheduler: Loaded 0 events
        090909 1:08:58 [Note] C:\Programmi\MySQL\MySQL Server 5.1\bin\mysqld: ready for connections.
        Version: ‘5.1.36-community’ socket: ” port: 3306 MySQL Community Server (GPL)
        InnoDB: Error: log file d:\Program\Program\database\ib_logfile0 is of different size 0 25165824 bytes
        InnoDB: than specified in the .cnf file 0 5242880 bytes!
        ————————————InnoDB LogFile————————————

        the error is 1286: unknow table engine ‘InnoDB’
        i didn’t use skip-innodb and in “my.ini” is commented. (i don’t think my.ini influence that because it’s an embedded version but my db was created with navicat so… (and with MyISAM works!))

        Comment by EvIl_DeViL — September 8, 2009 @ 11:39 pm

      • I recommend removing (renaming or deleting) the ib_logfile0 and ib_logfile1 (if exists) and try the app again. There may have been an old file from a previous install or a full server install. If the log files don’t match your config, it won’t start.

        Comment by Lee Stigile — September 9, 2009 @ 2:29 am

      • wow! you’re right!!! I deleted the two log files and it worked!!! many many many thanks!!! :)

        Comment by EvIl_DeViL — September 9, 2009 @ 8:00 am

  18. hi, i tried it out, and i’m getting an error on statement
    “mysql = mysql_init(NULL);”. Can someone help ?

    Comment by Hitesh — October 4, 2009 @ 6:07 pm | Reply

  19. also the return value in the statement
    “retval = mysql_library_init(num_elements, server_options, (char **) server_groups);” is 1. why is that so ?

    Comment by Hitesh — October 4, 2009 @ 6:25 pm | Reply

    • Hi — please take a look at comment #4 above from IT. He had similar errors and noted that –data and –language need two dashes, instead of one. Could this be the case for you?

      Comment by Lee Stigile — October 5, 2009 @ 8:47 pm | Reply

  20. I have the same problem and I have verified it is double dash (e.g. –datadir=…).
    Still mysql_library_init returns 1.
    I use VC++ express and Mysql 5.1 and libmysqld as it comes with install package.
    err file is created in the project_dir/data regardless of datadir parameter. I think this is because something is wrong in the parameters and init does not do its job.
    The code is really minimal, see below.
    Pls someone upload a working example including solution file and libmysqld.dll so I can try it and see the dif.
    Thanks a lot!

    // ———————— Code ————————
    #include “stdafx.h”
    #include
    #include
    #include
    #include
    #include
    #include

    MYSQL *mysql;
    MYSQL_RES *results;
    MYSQL_ROW record;

    static char *server_options[] = {“mysql_test”,
    “-–datadir=./data”,
    “-–language=C:/Program Files/MySQL/MySQL Server 5.1/share/english”,
    NULL
    };
    int num_elements = (sizeof(server_options)/ sizeof(char *)) – 1;
    static char *server_groups[] = { “libmysqld_server”, NULL };

    void test()
    {
    int retval;
    retval = mysql_library_init(num_elements, server_options, (char **)server_groups);

    Comment by Din — November 21, 2009 @ 4:15 pm


---- 지나온 날짜 계산 ----

<script language="JavaScript">
<!--
var now = new Date();
var then = new Date("march 4,2005");
var gap = now.getTime() - then.getTime();
gap = Math.floor(gap / (1000 * 60 * 60 * 24));
d0cument.write("blog 시작한지 " + gap + "일");
// -->
</script>

--- 남은 날짜 (D-day) 계산 ---

<script language="JavaScript">
<!--
var now = new Date();
var then = new Date("december 25,2005"); // 크리스마스
var gap = then.getTime() - now.getTime();
gap = Math.floor(gap / (1000 * 60 * 60 * 24));
d0cument.write("크리스마스 : " + gap + " day left");
// -->
</script><br/>

PMBok 버전3에서 버전4로의 변화내용

1267272322_PMBOK_4th_Edition_Changes_To_3rd_Edition_082308.pdf

PMP 자격증 시험 관련 요약서

1267271949_PDC_PMPHandbook.pdf

2009년 정보시스템감리사 기출문제

1267267422_2009감리사시험문제(공지).hwp

정보시스템감리사

정보시스템감리사는 정보시스템 전반을 알아야 하는 고급 기술자다.

정보시스템감리사는 정보시스템의 구축 운영에 관한 사항을 종합적으로 점검 평가하고 개선이 필요한 사항을 감리하여 의뢰인에게 권고하는 직업이다. 건축에서 감리를 통해 잘못된 건축물의 문제점을 개선하고 제대로 된 건축물을 짓도록 하는 것처럼 전산 시스템에서도 감리를 통해 잘못된 시스템을 개선하고 제대로 된 시스템을 구축하도록 하는 것이 정보시스템감리의 목적이다.

정보화시대가 진전되면서 정보시스템은 기업이나 기관의 가장 중요한 자산이 되어가고 있다. 기업의 영업 비밀, 인사 기록, 고객 자료 등 각종 중요 정보가 모두 정보시스템 안에 저장되어 있다. 이런 정보시스템은 매우 편리하지만 보안에 취약성이 있기 때문에 사고가 발생할 경우 큰 손실을 가져온다. 이런 손실을 막기 위해서 정보시스템감리가 필요하다. 실제 정보시스템 구축과 운용에서 만나는 많은 위험 요인을 통제하고 시스템에 맞는 설정과 운영에 대한 적절한 방법론을 확립해야 하며, 이를 적용하는 정보시스템 감리 요원이 필요한 것이다.

정보시스템감리는 정보화 추진 방향을 설정하는 기본 설계부터, 정보시스템개발 및 운영상의 효율성, 자료의 신뢰성 및 안전성 등을 종합적으로 검토해 정보시스템 구축과 운영에서 나타날 수 있는 문제점을 사전에 예방하는 작업이다. 정보화시대를 맞이하여 정보자산의 가치가 기업과 기관에서 차지하는 중요성이 커지면서 정보시스템감리의 필요성도 함께 커지고 있다.

정보시스템감리사는 한국전산원이나 민간 감리법인에서 근무한다. 민간 감리법인은 감리 전문 법인으로 존재하기도 하지만 SI업체나 컨설팅 업체에서 감리 업무를 수행하는 경우도 많다. 꽤 많은 감리사들이 SI 업체나 컨설팅 업체의 직원으로 일하면서 컨설팅과 감리 업무를 수행한다.
일반적으로 국내 정보시스템에 대한 주요 공공 프로젝트에 대해서는 한국전산원에서 국가정보화 감리업무를 수행하고 있다. 기업의 경우에는 최근 정보시스템의 감리를 전문적으로 수행하는 민간법인들이 활동을 하고 있다. 2002년에는 20~30개 사이의 감리법인이 활동했으나 이 수는 점차 증가하고 있다.

특히 국가 정보화사업의 원활한 수행과 부실방지를 위해 일정 규모 이상의 주요 공급 프로젝트에 대한 감리실시가 의무화되면서 정보시스템의 감리 시장은 큰 폭으로 성장하고 있다. 따라서 앞으로 정보시스템감리사의 수요는 계속 증가할 전망이다.

감리 업무는 정보시스템의 기획 개발 운영 및 유지 보수 단계 별로 구분하여 수행한다. 정보시스템감리사는 정보시스템 감리 요청이 들어오면 관련 자료를 제출받아 감리를 실시하고 감리보고서를 작성하여 감리 의뢰인에게 통보한다. 이 과정에서 시스템의 분석, 설계, 개발이 제대로 이루어지고 있는지, 시스템의 설계 원칙과 사양에 준거하여 정보시스템이 구축 이행되는지, 정보 자산을 보호하기 위한 요건을 충족하는지를 평가 확인한다. 물론 이 과정에서 미비한 부분은 지속적으로 수정해 시스템의 완전성을 높여나가도록 유도한다.


정보시스템감리사는 40대, 50대 활동 비중이 더욱 많으며 최고의 보수를 받는 직종이다.

정보시스템감리사 관련자격증으로는 한국산업인력공단에서 시행하는 정보관리기술사, 정보처리기사, 정보처리산업기사, 전자계산조직응용기술사, 전자계산기조직응용기사, 전자계산기조직응용산업기사, 정보기술산업기사 등이 있다. 그러나 이 자격증은 기초적인 자격증으로 이 자격증을 취득한다고 해서 정보시스템감리사가 되는 것은 아니다.

해외에서 발행하는 국제자격증으로는 정보시스템감사통제협회(ISACA :Information Systems Audit and Control Association)에서 시행하는 국제공인정보시스템감사사(CISA :Certified Information Systems Auditor) 자격증이 있다. 이 자격증은 세계적으로 널리 인정되는 자격증으로 희소성이 높지만 취득하기 매우 어려운 자격증이다. CISA를 취득한 사람은 국내에서도 소수에 불과해 개인의 능력 향상에 큰 도움이 되며, CISA를 취득한다면 고액 연봉을 받는 정보시스템감리사로 활동할 수 있다.

그외 한국전산원에서 수여하는 국가공인 정보시스템감리사 자격증이 있는데 아무나 취득할 수 있는 것이 아니다. 정보통신 분야에서 일정 수준 이상의 자격을 갖춘 지원자를 선발하여 교육을 실시한 후에, 정보시스템 감리 관련 전문가로 구성된 정보시스템감리사 평가위원회의 심사를 거쳐 수여한다. 따라서 현장에서 꽤 오랜 기간 근무한 사람이 취득할 수 있는 자격증이다.

정보시스템감리사는 정보 시스템의 모든 것을 감리해야 하므로 상당한 수준의 기술력이 필요하다. 시스템 분석, 설계, 개발, 운영, 보수, 유지에 필요한 모든 지식을 갖추어야만 감리가 가능하기 때문이다. 이 때문에 정보시스템의 감리 활동을 할 수 있으려면 특급 기술자 수준 이상이 되어야 한다.

감리사로 활동하기 배워야 할 내용은 다양하다. 정보시스템의 감사업무 프로세스, 정보시스템의 관리, 계획, 조직, 기술 하부구조, 운영실무, 정보자산의 보호, 재해복구, 응용시스템 개발, 구입, 구현, 유지 보수, 업무 프로세스평가, 위험관리, 프로젝트 관리, 감리보고서 작성법 등을 배우는데 시스템에 대한 전반적인 내용을 배운다고 보면 된다.

요구하는 능력이 크고 매우 중요하고 전문적인 일인 관계로 다른 IT 직종에 비해 보수는 매우 높다. 종사자 평균이 월 345만원으로 IT 직종에서는 매우 높은 보수를 받고 있는 직종이다. 더구나 감리 의무화로 일감은 증가하는 반면 인력은 부족해 정보시스템감리사의 보수는 계속 상승하고 있다.

정보시스템감리사는 고졸 이하가 0%, 전문대졸 이하가 2%로 저학력층이 거의 없는 반면 대학원졸 이상이 34%나 되는 고학력 직종이다. 전공은 컴퓨터/통신이 41%, 경영/경제가 29%를 차지한다. 기본적으로 정보시스템감리사로 활동하기 위해서는 4년제 이상의 대학에서 전산계통관련 전공을 하거나, 관련 자격을 취득하는 것이 기본이다. 하지만 무엇보다 현장에서의 다양한 실무경험이 뒷받침되어야 한다. 다양한 현장 경험이 없다면 감리 활동을 수행하기 어렵다.

다양한 현장경험이 필요하다는 것을 증명하는 것은 연령층 비율이다. 일반적으로 지금까지 소개한 대부분의 IT 직종은 20대와 30대 비율이 거의 100%에 달하고 40대 이상은 거의 없는 반면 정보시스템 감리 직종은 거꾸로 40대 비율이 36%로 가장 높고, 50세 이상 고연령자도 31%나 된다. 반면 20대는 10%에 불과하고 30대도 23%에 불과하다. 즉 정보시스템감리사는 많은 경험이 필요한 분야라는 뜻이다. 이 때문에 개발자, 프로그래머, IT컨설턴트 등의 다양한 직종으로 취업했던 IT 종사자의 상당수가 정보시스템감리사를 목표로 경력을 쌓고 있다.

현재 정보시스템감리사로 종사하는 사람이 대부분은 남자다. 이는 정보시스템감리사라는 직종이 비교적 최근에 개척된 직종인 반면 감리사가 되기 위해서는 오랜 경력이 필요한 분야이기 때문이다. 웹디자인이나 프로그래머처럼 학원에서 몇 달 배우면 취업할 수 있는 분야가 아니라 현업에서 10년 이상 개발자나 엔지니어로 근무했던 사람이 감리사로 전환하는 경우가 많기 때문에 여성 인력의 진출이 거의 없는 것이다. 하지만 정보시스템감리사의 업무는 여성에게도 적합하다. 고학력 여성들이 진출하기에 적합한 분야이므로 현재 현업에서 활동하는 IT 종사자라면 정보시스템감리사라는 직종에 목표를 두고 개인 능력을 개발하는 것이 좋다.

+ Recent posts